zoukankan      html  css  js  c++  java
  • Android 中AlterDialog使用

    Android 中AlterDialog使用,AlterDialog的使用分为两种,一种是直接使用,一种是自己设计一个Layout,然后当做Dialog显示出来。

    1、定义两个Button,一个用来显示AlterDialog,一个显示自定义的AlterDialog。

    	private Button bt1;
    	private Button bt2;
    

     注册事件

    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		bt1 = (Button)this.findViewById(R.id.button1);
    		bt1.setOnClickListener(new OnClickEvent());
    		
    		bt2 = (Button)this.findViewById(R.id.button2);
    		bt2.setOnClickListener(new OnClickEvent());
    	}
    

     2、bt1显示普通的AlterDialog,bt2显示自己定义的AlterDialog。

    	class OnClickEvent implements OnClickListener {
    		@Override
    		public void onClick(View v) {
    			// TODO Auto-generated method stub
    			if(v == bt1)
    			{
    				ShowDialog(MainActivity.this);
    			}
    			if(v == bt2)
    			{
    				showDialog_Layout(MainActivity.this);
    			}
    		}
    
    	}
    

     3、ShowDialog方法显示带有三个按钮的Dialog。分别为OK,Cancle,Reset。以及三个Button的单击事件。

    	private void ShowDialog(Context context)
    	{
    		AlertDialog.Builder build = new AlertDialog.Builder(context);
    		build.setIcon(R.drawable.ic_launcher);
    		build.setTitle("Dialog Title");
    		build.setMessage("Dialog Message");
    		build.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    			
    			@Override
    			public void onClick(DialogInterface dialog, int which) {
    				// TODO Auto-generated method stub
    				setTitle("You click OK");
    			}
    		});
    		build.setNeutralButton("Reset", new DialogInterface.OnClickListener() {
    			
    			@Override
    			public void onClick(DialogInterface dialog, int which) {
    				// TODO Auto-generated method stub
    				setTitle("You click Reset");
    			}
    		});
    		build.setNegativeButton("Cancle", new DialogInterface.OnClickListener() {
    	
    			@Override
    			public void onClick(DialogInterface dialog, int which) {
    				// TODO Auto-generated method stub
    				setTitle("You click Cancle");
    			}
    		});
    		
    		build.show();
    	}
    

     showDialog_Layout显示自己定义的AlterDialog,定义了两个按钮,分别为OK和Cancle,以及各自的单击事件。

    	private void showDialog_Layout(Context context) {  
    		LayoutInflater inflater = LayoutInflater.from(this);
    		final View view = inflater.inflate(R.layout.mydialoglayout, null);
    		
    		final EditText txt = (EditText)view.findViewById(R.id.editText1);
    		AlertDialog.Builder build = new AlertDialog.Builder(context);
    		build.setIcon(R.drawable.ic_launcher);
    		build.setTitle("Dialog Title");
    		build.setCancelable(false); 
    		build.setIcon(R.drawable.ic_launcher);
    		build.setView(view);
            build.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    			
    			@Override
    			public void onClick(DialogInterface dialog, int which) {
    				// TODO Auto-generated method stub
    				setTitle(txt.getText());
    			}
    		});
            build.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    			
    			@Override
    			public void onClick(DialogInterface dialog, int which) {
    				// TODO Auto-generated method stub
    				setTitle("");
    			}
    		});
            build.show();
    	}
    

     自定义的mydialoglayout.xml的UI代码为:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10" >
            <requestFocus />
        </EditText>
    </LinearLayout>
    

     这个UI是自定义的,当然可以定义的更复杂。上面就放了一个EditText。

    作者:Work Hard Work Smart
    出处:http://www.cnblogs.com/linlf03/
    欢迎任何形式的转载,未经作者同意,请保留此段声明!

  • 相关阅读:
    python 矩阵转置
    go
    Go-GRPC 初体验
    SpringMVC笔记——Spring+MyBatis组合开发简单实例
    MyBatis笔记——EhCache二级缓存
    MyBatis笔记——Mapper动态代理
    MyBatis笔记——初次环境配置
    Spring笔记——配置Hibernate框架事务
    Hibernate笔记——关联关系配置(一对多、一对一和多对多)
    Mysql笔记——触发器简单实例
  • 原文地址:https://www.cnblogs.com/linlf03/p/2959585.html
Copyright © 2011-2022 走看看