设计并实现对话框提示界面,完成以下功能
1、界面上面有一个按钮,点击按钮后弹出一个用户登录的对话框;
2、在用户登录对话框中,输入用户名和密码,单击确定后,弹出一个登录等待对话框,等5s后返回最初界面并显示登录成功
实验代码:
MainActivity.java
package com.example.dialog;
import com.example.dialog.MainActivity;
import com.example.dialog.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
Button register;
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
register=(Button)findViewById(R.id.btn_register);
register.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
AlertDialog.Builder inputDialog = newAlertDialog.Builder(
MainActivity.this);
inputDialog.setTitle("用户登录对话框");
View view=LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog,null);
final EditTextusername=(EditText)findViewById(R.id.etxt_username);
final EditTextpassword=(EditText)findViewById(R.id.etxt_password);
inputDialog.setView(view);
inputDialog.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
publicvoid onClick(DialogInterface dialog,int which) {
finalint MAX_PROGRESS = 5;
progressDialog =new ProgressDialog(MainActivity.this);
progressDialog.setTitle("");
progressDialog.setMessage("登录中...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setCancelable(false);
progressDialog.show();
new Thread(new Runnable(){
@Override
publicvoid run() {
int progress = 0;
while (progress < MAX_PROGRESS){
try {
Thread.sleep(1000);
progress++;
progressDialog.incrementProgressBy(progress);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
progressDialog.cancel();
}
}).start();
progressDialog.setOnCancelListener(newDialogInterface.OnCancelListener(){
@Override
publicvoid onCancel(DialogInterface dialog) {
Toast.makeText(MainActivity.this,"用户成功登录",Toast.LENGTH_SHORT).show();
}
});
}
}).show();
}
});
}
}
activity_main.xml
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dialog作业"
/>
<Button
android:id="@+id/btn_register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登录 对话框"
/>
</LinearLayout>
dialog.xml
<?xmlversion="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="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/tv_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名:"
/>
<EditText
android:id="@+id/etxt_username"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/tv_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密 码:"
/>
<EditText
android:id="@+id/etxt_password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:password="true"
/>
</LinearLayout>
</LinearLayout>
效果图: