android dialog 部分笔记

来源:互联网 发布:java interface与抽象 编辑:程序博客网 时间:2024/05/22 02:24

MainActivity

package com.example.dialog_study;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.DialogInterface;import android.view.KeyEvent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button bt1 = (Button)this.findViewById(R.id.bt1);Button bt2 = (Button)this.findViewById(R.id.bt2);bt1.setOnClickListener(new OnClickListener(){public void onClick(View arg0) {new AlertDialog.Builder(MainActivity.this).setTitle("title").setMessage("message").setPositiveButton("ok", dialog1)//绑定dialog1为监听器.setNegativeButton("no", dialog1)//绑定dialog1为监听器.setNeutralButton("i don't know", dialog1)//绑定dialog1为监听器.setCancelable(false)//false返回键不可用,true则返回键可用.show();}});bt2.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0) {MyDialog md = new MyDialog(MainActivity.this);//自定义的一个dialog类}});}DialogInterface.OnClickListener dialog1 = new DialogInterface.OnClickListener() {public void onClick(DialogInterface arg0, int arg1) {if(arg1 == DialogInterface.BUTTON_POSITIVE) {Toast.makeText(MainActivity.this,"ok", Toast.LENGTH_SHORT).show();}if(arg1 == DialogInterface.BUTTON_NEGATIVE) {Toast.makeText(MainActivity.this,"no", Toast.LENGTH_SHORT).show();}if(arg1 == DialogInterface.BUTTON_NEUTRAL) {Toast.makeText(MainActivity.this,"i don't know", Toast.LENGTH_SHORT).show();}}};}

MyDialog类(应该能定义在内部,而且会更加方便。)

package com.example.dialog_study;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.Context;import android.content.DialogInterface;import android.widget.EditText;import android.widget.Toast;public class MyDialog {public MyDialog(){};private EditText et ;public MyDialog(final Context context){AlertDialog.Builder bd = new Builder(context);//将activity作为参数传进来this.et = new EditText(context);bd.setTitle("title");bd.setIcon(android.R.drawable.ic_dialog_alert);bd.setView(et);//添加一个输入框的视图bd.setPositiveButton("ok", new DialogInterface.OnClickListener(){public void onClick(DialogInterface arg0, int arg1) {String s = et.getText().toString();//获取输入框的文字Toast.makeText(context, s, Toast.LENGTH_SHORT).show();}});bd.setNegativeButton("cancel", new DialogInterface.OnClickListener(){public void onClick(DialogInterface arg0, int arg1) {Toast.makeText(context,"no", Toast.LENGTH_SHORT).show();}});bd.show();}}

Button1弹出style一的对话框

按下no,toast提示nobutton2弹出style2的对话框,输入“嗯”

toast提示“嗯”



自定义一个list显示在对话框上:

自定义一个类

import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.Context;import android.content.DialogInterface;import android.widget.Toast;public class MyDialog2 implements DialogInterface.OnClickListener{Context context;String[] s;public MyDialog2(){}public MyDialog2(final Context context){this.context = context;s = new String[]{"1","2","3","4"};AlertDialog.Builder bd = new Builder(context);bd.setCancelable(false);bd.setSingleChoiceItems(s, 0, this);bd.show();}public void onClick(DialogInterface arg0, int arg1) {switch(arg1){case 0:Toast.makeText(context, arg1+"", Toast.LENGTH_SHORT).show();}}}

点击之后直接做出反应。未加上确认和取消按钮。


未完待续

0 0