告訴大家如何記憶用戶單選和復選對話框的選項
package?com.example.alertdialogdemo; import?android.app.Activity; import?android.app.AlertDialog; import?android.content.DialogInterface; import?android.os.Bundle; import?android.view.View; import?android.view.View.OnClickListener; import?android.widget.Toast; public?class?MainActivity?extends?Activity?{ String[]?single_list?=?{"男",?"女",?"女博士",?"程序員"}; String[]?hobby_list?=?{"音樂",?"籃球",?"足球",?"吉他"}; boolean[]?checkedList?=?{false,?false,?false,?false}; private?int?checkedItem?=?0; @Override protected?void?onCreate(Bundle?savedInstanceState)?{ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initEvent1(); initEvent2(); initEvent3(); } private?void?initEvent1()?{ findViewById(R.id.dialog_btn1).setOnClickListener(new?OnClickListener()?{ public?void?onClick(View?v)?{ showDialog1(); } }); } private?void?initEvent2()?{ findViewById(R.id.dialog_btn2).setOnClickListener(new?OnClickListener()?{ public?void?onClick(View?v)?{ showDialog2(); } }); } private?void?initEvent3()?{ findViewById(R.id.dialog_btn3).setOnClickListener(new?OnClickListener()?{ public?void?onClick(View?v)?{ showDialog3(); } }); } /** ?*?顯示確認對話框 ?*/ private?void?showDialog1()?{ AlertDialog.Builder?builder?=?new?AlertDialog.Builder(this); builder.setTitle("確認對話框"); builder.setIcon(R.drawable.ic_launcher); builder.setMessage("這是確認的內容");??//設置內容 builder.setPositiveButton("確定",?new?DialogInterface.OnClickListener()?{ public?void?onClick(DialogInterface?dialog,?int?which)?{ Toast.makeText(MainActivity.this,?"確認內容",?Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消",?new?DialogInterface.OnClickListener()?{ public?void?onClick(DialogInterface?dialog,?int?which)?{ //?TODO?Auto-generated?method?stub Toast.makeText(MainActivity.this,?"取消內容",?Toast.LENGTH_SHORT).show(); } }); AlertDialog?dialog?=?builder.create();?//獲取dialog dialog.show();? } private?void?showDialog2()?{ AlertDialog.Builder?builder?=?new?AlertDialog.Builder(this); builder.setTitle("選擇性別"); builder.setIcon(R.drawable.ic_launcher); builder.setSingleChoiceItems(single_list,?checkedItem,?new?DialogInterface.OnClickListener()?{ public?void?onClick(DialogInterface?dialog,?int?which)?{ String?str?=?single_list[which]; checkedItem?=?which;??//記憶單選框選項 Toast.makeText(MainActivity.this,?"此人是"?+?str?+?"!",? Toast.LENGTH_SHORT).show(); } }); AlertDialog?dialog?=?builder.create(); dialog.show(); } private?void?showDialog3()?{ AlertDialog.Builder?builder?=?new?AlertDialog.Builder(this); builder.setTitle("愛好"); builder.setIcon(R.drawable.ic_launcher); builder.setMultiChoiceItems(hobby_list,?checkedList,?new?DialogInterface.OnMultiChoiceClickListener()?{ public?void?onClick(DialogInterface?dialog,?int?which,?boolean?isChecked)?{ String?str?=?hobby_list[which]; checkedList[which]?=?isChecked;??//記住復選框選項 if?(isChecked)?{ Toast.makeText(MainActivity.this,?"I?like?"?+?str?+?"!",?Toast.LENGTH_SHORT).show(); }?else?{ Toast.makeText(MainActivity.this,?"I?dislike?"?+?str?+?"!",?Toast.LENGTH_SHORT).show(); ???} } }); builder.setPositiveButton("確定",?new?DialogInterface.OnClickListener()?{ public?void?onClick(DialogInterface?dialog,?int?which)?{ //?TODO?Auto-generated?method?stub dialog.cancel(); } }); builder.setNegativeButton("取消",?new?DialogInterface.OnClickListener()?{ public?void?onClick(DialogInterface?dialog,?int?which)?{ //?TODO?Auto-generated?method?stub dialog.cancel(); } }); AlertDialog?dialog?=?builder.create(); dialog.show(); ????} }
這是我的代碼,大家可以參考下,記憶復選框,只需在開始定義一個布爾類型的數組,初始值都設置為false,然后在點擊事件里將isChecked的值賦給定義的數組即可;單選只需定義一個int型的變量,方法和復選類似,還不懂的可以仔細看看代碼。
2016-05-31
居然寫在了問答里,不是一般寫在筆記分類下么……