Android仿QQ的設定與協助使用PreferenceActivity 與 自訂PreferenceActivity

來源:互聯網
上載者:User

先看下效果:

1

 

 

2

 

 

3

 

 

4

 

 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.nj.demo"    android:versionCode="1"    android:versionName="1.0" >    <application android:icon="@drawable/icon" >        <activity            android:configChanges="keyboardHidden|orientation"            android:label="設定與協助"            android:name=".SettingActivity"            android:theme="@style/Default" >            <intent-filter >                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity            android:alwaysRetainTaskState="true"            android:configChanges="keyboardHidden|orientation"            android:name=".SkinActivity"            android:theme="@android:style/Theme.NoTitleBar" >        </activity>        <activity            android:name=".TrafficStatActivity"            android:theme="@android:style/Theme.NoTitleBar" >        </activity>        <activity            android:name=".FriendInfoActivity"            android:theme="@android:style/Theme.NoTitleBar"            android:windowSoftInputMode="adjustUnspecified|stateHidden" >        </activity>    </application></manifest>

 

SettingActivity.java

package com.nj.demo;import android.os.Bundle;import android.preference.PreferenceActivity;/** * 設定 * */public class SettingActivity extends PreferenceActivity{protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                // Load the preferences from an XML resource                 addPreferencesFromResource(R.xml.setting_preference);    }}

 

FriendInfoActivity.java

package com.nj.demo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.inputmethod.InputMethodManager;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;/** * 好友資訊 * */public class FriendInfoActivity extends Activity{private TextView mChangeCommentTextView;private EditText mCommentEditText;private boolean  mBCommentEditable;private InputMethodManager mKeyBorad;private String mCommentTmpString;private LinearLayout mQzone;private LinearLayout mMaiLayout;private LinearLayout mChat;protected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.info_friend);init();}private void init(){mChangeCommentTextView = (TextView) findViewById(R.id.change_comment);mChangeCommentTextView.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubswitchCommentState();}});mCommentEditText = (EditText) findViewById(R.id.edit_comment);mBCommentEditable = false;mKeyBorad = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);  View view1 = findViewById(R.id.info_qzone_mail);mQzone = (LinearLayout) view1.findViewById(R.id.qzone);mQzone.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubToast.makeText(FriendInfoActivity.this, "You Press QZONE", Toast.LENGTH_SHORT).show();}});mMaiLayout = (LinearLayout) view1.findViewById(R.id.mail);mMaiLayout.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubToast.makeText(FriendInfoActivity.this, "You Press Main", Toast.LENGTH_SHORT).show();}});mChat = (LinearLayout) view1.findViewById(R.id.chat);mChat.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubToast.makeText(FriendInfoActivity.this, "You Press Chat", Toast.LENGTH_SHORT).show();}});}private void switchCommentState(){if (mBCommentEditable){mBCommentEditable = false;mCommentEditText.setFocusableInTouchMode(false);mCommentEditText.setFocusable(false);mChangeCommentTextView.setText("修改");   boolean ret = mKeyBorad.hideSoftInputFromWindow(mCommentEditText.getWindowToken(), 0);if (ret == false){mCommentEditText.setText(mCommentTmpString);}}else{mBCommentEditable = true;mCommentEditText.setFocusableInTouchMode(true);mCommentEditText.setFocusable(true);mChangeCommentTextView.setText("確定");mKeyBorad.showSoftInput(mCommentEditText, 0);mCommentTmpString = mCommentEditText.getText().toString();}}}

 

 

SkinActivity.java

package com.nj.demo;import java.util.ArrayList;import java.util.List;import com.nj.demo.adapter.SkinListAdapter;import com.nj.demo.adapter.SkinListItemData;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.TextView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemSelectedListener;/** * 更換皮膚 * */public class SkinActivity extends Activity{private final int skinIconID[] = {R.drawable.skinpic_blue,R.drawable.skinpic_green,R.drawable.skinpic_pink,R.drawable.skinpic_snow};private final String text[] = {"藍水靜溢", "綠霧晨光", "粉色花語", "銀裝素裹"};private final int uncheckIcon = R.drawable.themeradio;private ListView mListView;private SkinListAdapter mSkinListAdapter;private TextView mTitleTextView;protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                // Load the preferences from an XML resource        setContentView(R.layout.skin_main_layout);                init();    }private void init(){mListView = (ListView) findViewById(R.id.themelist);mSkinListAdapter = new SkinListAdapter(this, getItemList());mListView.setAdapter(mSkinListAdapter);mListView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubmSkinListAdapter.setSelect(position);mTitleTextView.setBackgroundResource(skinIconID[position]);}});mTitleTextView = (TextView) findViewById(R.id.skinTitle);}private List<SkinListItemData> getItemList(){List<SkinListItemData> list = new ArrayList<SkinListItemData>();for(int i = 0; i < 4; i++){SkinListItemData data = new SkinListItemData();data.mImageViewLeftID = skinIconID[i];data.mTextView = text[i];data.mImageViewRightID = uncheckIcon;list.add(data);}return list;}}

 

 

TrafficStatActivity.java

package com.nj.demo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.TextView;/** * 流量統計 */public class TrafficStatActivity extends Activity{private TextView mTextViewBaseSendTextView;private TextView mTextViewBaseRecvTextView;private TextView mTextViewTotalSendTextView;private TextView mTextViewTotalRecvTextView;protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                // Load the preferences from an XML resource        setContentView(R.layout.act_set_trafficstat);                init();    }private  void init(){View layout1 = findViewById(R.id.trafic_today_tbl);mTextViewBaseSendTextView = (TextView) layout1.findViewById(R.id.base_send_trafic);mTextViewBaseRecvTextView = (TextView) layout1.findViewById(R.id.base_recv_trafic);mTextViewTotalSendTextView = (TextView) layout1.findViewById(R.id.total_send_trafic);mTextViewTotalRecvTextView = (TextView) layout1.findViewById(R.id.total_recv_trafic);mTextViewBaseSendTextView.setText("14 KB");mTextViewBaseRecvTextView.setText("3 KB");mTextViewTotalSendTextView.setText("14 KB");mTextViewTotalRecvTextView.setText("3 KB");}}

 

資源為: http://download.csdn.net/detail/niejing654092427/4500972

 

 

二.自訂PreferenceActivity

 資源為: http://download.csdn.net/detail/niejing654092427/5209112

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.