android dialog 部分笔记

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 {

	@Override
	protected 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(){
			@Override
			public 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();
		}
	}
}

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


未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值