Android笔记(七十) AlertDialog
? ? ??alertdialog可以在當前界面中彈出一個對話框,這個對話框在界面所有元素之上,可以屏蔽掉其他控件的交互能力,因此alertdialog常用于一些重要的內容警告。
????? 使用AlertDialog.Builder創建對話框需要了解以下幾個方法:
????? setTitle :為對話框設置標題
????? setIcon :為對話框設置圖標
????? setMessage:為對話框設置內容
????? setView : 給對話框設置自定義樣式
????? setItems :設置對話框要顯示的一個list,一般用于顯示幾個命令時
????? setMultiChoiceItems :用來設置對話框顯示一系列的復選框
????? setNeutralButton??? :普通按鈕
????? setPositiveButton?? :給對話框添加"Yes"按鈕
????? setNegativeButton :對話框添加"No"按鈕
????? setCancelable:點擊其他部位是否可以取消alertdialog,默認為true
????? setSingleChoiceItems:設置類似于單選框一樣的list
????? create : 創建對話框
????? show :顯示對話框
普通的AlertDialog:
package com.example.alertdialogdemo;import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;public class MainActivity extends Activity {private Button bt;private TextView tv;private Context mContext;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = MainActivity.this;bt = (Button) findViewById(R.id.bt);tv = (TextView) findViewById(R.id.tv);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);dialog.setCancelable(false);dialog.setIcon(R.drawable.remind);dialog.setTitle("This is title!");dialog.setMessage("This is Message!");dialog.setPositiveButton("YES", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(mContext, "YES→" + which, Toast.LENGTH_SHORT).show();changeText(which);}});dialog.setNegativeButton("NO", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(mContext, "NO→" + which, Toast.LENGTH_SHORT).show();changeText(which);}});dialog.show();}});}public void changeText(int which) {if (which == -1) {tv.setText("您選擇的是YES!");} else if (which == -2) {tv.setText("您選擇的是NO!");}} }運行結果:
類似ListView的AlertDialog
package com.example.alertdialogdemo;import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;public class MainActivity extends Activity {private Button bt;private TextView tv;private Context mContext;private String[] phones = { "三星", "蘋果", "小米", "魅族", "錘子", "華為", "中興" };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = MainActivity.this;bt = (Button) findViewById(R.id.bt);tv = (TextView) findViewById(R.id.tv);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);dialog.setCancelable(true);dialog.setIcon(R.drawable.phone);dialog.setTitle("選擇你喜歡的手機");dialog.setItems(phones, new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {changeText(which);}});dialog.show();}});}public void changeText(int which) {tv.setText("您選擇的手機是: " + phones[which]);} }運行結果:
?
單選AlertDialog
package com.example.alertdialogdemo;import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;public class MainActivity extends Activity {private Button bt;private TextView tv;private Context mContext;private String[] sex = { "男生", "女生", "雌雄同體" };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = MainActivity.this;bt = (Button) findViewById(R.id.bt);tv = (TextView) findViewById(R.id.tv);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);dialog.setCancelable(true);dialog.setIcon(R.drawable.phone);dialog.setTitle("你的性別:");// 第二個參數是默認選擇位置dialog.setSingleChoiceItems(sex, 0, new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {changeText(which);}});dialog.setPositiveButton("OK", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.show();}});}public void changeText(int which) {tv.setText("您的性別是: " + sex[which]);} }運行結果:
多選AlertDialog
package com.example.alertdialogdemo;import java.util.ArrayList; import java.util.List;import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnMultiChoiceClickListener; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView;public class MainActivity extends Activity {private Button bt;private TextView tv;private Context mContext;private String[] hobby = { "看電影", "看書", "上網", "籃球", "足球", "游泳", "逛街", "羽毛球" };private List<String> hobbyList;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = MainActivity.this;hobbyList = new ArrayList<String>();bt = (Button) findViewById(R.id.bt);tv = (TextView) findViewById(R.id.tv);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);dialog.setCancelable(true);dialog.setIcon(R.drawable.heart);dialog.setTitle("你的性別:");dialog.setMultiChoiceItems(hobby, null, new OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {hobbyList.add(hobby[which]);}});dialog.setPositiveButton("OK", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {changeText();}});dialog.show();}});}public void changeText(int which) {}public void changeText() {String str = "";for (int i = 0; i < hobbyList.size(); i++) {str = hobbyList.get(i) + " " + str;}tv.setText("您的愛好有: " + str);} }運行結果:
自定義AlertDialog
MainActivity.java
package com.example.alertdialogdemo;import java.util.ArrayList; import java.util.List;import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView;@SuppressLint("NewApi") public class MainActivity extends Activity {private Button bt;private TextView tv;private Context mContext;private View view;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = MainActivity.this;bt = (Button) findViewById(R.id.bt);tv = (TextView) findViewById(R.id.tv);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);view = LayoutInflater.from(mContext).inflate(R.layout.custom_view_dialog, null);dialog.setCancelable(true);dialog.setTitle("你的身高:");dialog.setView(view);dialog.setPositiveButton("OK", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {changeText();}});dialog.show();}});}public void changeText() {EditText et = (EditText) view.findViewById(R.id.height);String height = et.getText().toString().trim();tv.setText("身高:" + height + " cm");} }custom_view_dialog.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/layout"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal" ><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/ruler" /><EditTextandroid:id="@+id/height"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="cm" /></LinearLayout>運行效果:
?
轉載于:https://www.cnblogs.com/xs104/p/5093613.html
總結
以上是生活随笔為你收集整理的Android笔记(七十) AlertDialog的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 35个Java代码性能优化总结
- 下一篇: win10设置安装包打不开怎么办 解决W