Android 實現單選對話方塊
阿新 • • 發佈:2018-12-10
專案中有一次用到了單選對話方塊,突然發現因為許久不用,我竟然對這樣一個小小的知識點有點陌生,這還得了?正好最近打算開始寫自己的部落格,不為其他,只為記錄自己的成長,就從這一篇開始吧!
具體實現步驟如下:
1.宣告一個全域性陣列,作為對話方塊列表的內容
String[] Items = {"Java","Android","C","H5","JS"};
當然,我們也可以在xml檔案中設定其列表選項:res/values目錄下新建array.xml檔案,檔案內容如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="hobby"> <item>Java</item> <item>Android</item> <item>C</item> <item>H5</item> <item>JS</item> </string-array> </resources>
2.定義一個佈局檔案,內容很簡單隻有一個按鈕,當點選按鈕時彈出單選對話方塊。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_single_dialog" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/btn_single" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="彈出單選對話方塊"/> </LinearLayout>
3.建立一個單選列表對話方塊,注意此處必須要借用AlertDialog.Builder作為對話方塊內容的載體,主要程式碼如下:
private void ShowSingleDialog() { TempWhich = 0; //TempWhich表示選擇的Item位置,預設為0 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.mipmap.ic_launcher); //設定圖示 builder.setTitle("請選擇喜歡的開發語言:"); //設定標題 builder.setCancelable(false); //設定是否可以點選對話方塊外部取消,false表示不能,true表示能 //點選選擇Item監聽 builder.setSingleChoiceItems(R.array.hobby, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String hobby = getResources().getStringArray(R.array.hobby)[which]; TempWhich = which; Toast.makeText(DialogActivity.this, "您選擇了" + which , Toast.LENGTH_SHORT).show(); } }); //確定按鈕監聽 builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //此處Which一直返回-1,故需要借用TempWhich switch (TempWhich){ case 0: Toast.makeText(DialogActivity.this, "您選擇了JAVA" , Toast.LENGTH_SHORT).show(); break; case 1: Toast.makeText(DialogActivity.this, "您選擇了Android" , Toast.LENGTH_SHORT).show(); break; case 2: Toast.makeText(DialogActivity.this, "您選擇了C" , Toast.LENGTH_SHORT).show(); break; default: Toast.makeText(DialogActivity.this, "您選擇了其他" , Toast.LENGTH_SHORT).show(); break; } } }); //取消按鈕監聽 builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //此處新增取消按鈕的點選邏輯 } }); //還可以設定一個Neutral按鈕,表示中立 builder.setNeutralButton("忽略", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //此處新增忽略按鈕的點選邏輯 } }); builder.show(); }
4.效果圖在此就不展示了,有興趣的童鞋可以試一下。