Android开发——AlertDialog自定义对话框

来源:互联网 发布:修改手机型号软件大全 编辑:程序博客网 时间:2024/06/06 12:59

今天的最后一个控件了,准备睡觉,就不要太难的了,我们不把每个对话框都列出来,我们就说一个,自定义弹出框AlertDialog。

这个就是看一下代码就知道控件的用处了,我们不多说,直接看代码吧!如果想要了解详细一点给你们推荐一个博客,他是今天白天写的大笑http://blog.csdn.net/ksj_j/article/details/53607737

我们就直接写我们自定义的对话框吧。

activity_main.xml(就一个按钮)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.alertdialog.MainActivity" >    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true"        android:text="登录"         android:onClick="button"/></RelativeLayout>
myview.xml

<?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" >    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="horizontal" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="账号:"             android:textSize="20dp"/>        <EditText            android:id="@+id/username_Et"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:hint="请输入用户名" />    </LinearLayout>    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="horizontal" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:textSize="20dp"            android:text="密码:" />        <EditText            android:id="@+id/pwd_Et"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:hint="请输入密码" />    </LinearLayout><LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="horizontal" >    <Button        android:id="@+id/submit_Btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="确定" />    <Button        android:id="@+id/cancel_Btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="取消" /></LinearLayout></LinearLayout>
MainActivity.java

package com.example.alertdialog;import android.app.Activity;import android.app.AlertDialog;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;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);}public void button(View view){showMyDialog();}private void showMyDialog(){AlertDialog.Builder builder=new AlertDialog.Builder(this);View view=View.inflate(this, R.layout.myview, null);builder.setView(view);final AlertDialog alertDialog=builder.create();alertDialog.show();final EditText userName_Et=(EditText)view.findViewById(R.id.username_Et);final EditText pwd_Et=(EditText)view.findViewById(R.id.pwd_Et);Button submit_Btn=(Button)view.findViewById(R.id.submit_Btn);Button cancel_Btn=(Button)view.findViewById(R.id.cancel_Btn);submit_Btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString userName=userName_Et.getText().toString();String password=pwd_Et.getText().toString();Toast.makeText(MainActivity.this, "用户名:"+userName+"\n"+"密码:"+password, Toast.LENGTH_SHORT).show();alertDialog.cancel();} });}}
注意一下这几个final,为什么我们要加final呢?想一想。试一下不加的效果。

如果你不加的话那肯定就报错了。因为你是在匿名内部类中用到了这几个变量,如果不定义成final就不能用了

下面是我们点击按钮触发的效果:


2 0
原创粉丝点击