我們去餐廳吃飯時,服務員都會拿選單給我們選擇點什麼菜。今天就分享一個具有選擇功能的簡易對話方塊,給使用者展示一個選擇列表。實現思路如下:
-
既然有選擇列表,那麼這個列表的內容肯定儲存在某個地方
-
使用者選擇某一項後,給使用者做出提示,剛才選擇的是什麼
該功能主要用的是 AlertDialog,原始碼如下:
1、主Activity(細看程式碼中詳細的註釋)
`
package com.example.memorydemo.aty;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.example.memorydemo.R;
public class AlertDialogDemo extends Activity {
@Override
protected void onCreate(Bundle onSavedInstance) {
super.onCreate(onSavedInstance);
setContentView(R.layout.alert_dialog_demo);
Button button = findViewById(R.id.buttonAlertDialog);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(AlertDialogDemo.this)
.setTitle("Please choose")
// 設定對話方塊的顯示內容,是個內容列表,注意:這裡需要傳陣列型別,比如 R.array 或者 String[]
.setItems(R.array.items_alert_dialog, new DialogInterface.OnClickListener() {
// 點選列表上的任一項
@Override
public void onClick(DialogInterface dialog, int which) {
String[] items = getResources().getStringArray(R.array.items_alert_dialog);
new AlertDialog.Builder(AlertDialogDemo.this)
// 再次彈框,向使用者提示 使用者剛才選擇的內容
.setMessage("You chose: " + items[which])
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
})
// 第一個對話方塊有個 取消 按鈕
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.show();
}
});
}
}`
2、佈局檔案 alert_dialog_demo.xml
`
<TextView
android:paddingTop="20dp"
android:text="這是一個AlertDialog樣例"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="wrap_content" android:id="@+id/textView7"/>
<Button
android:text="點選開始選擇"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/buttonAlertDialog"/>
`
3、列表內容定義在 res/values/strings.xml 中:
`
...
<array name="items_alert_dialog">
<item>成都串串</item>
<item>重慶火鍋</item>
<item>港式餐廳</item>
</array>
`
4、效果圖如下:
分享這個極為簡單的功能,主要是為後面學習AlertDialog的中高階用法以及實現具備複雜選擇功能的需求打下堅實的基礎。