以下是重构后的代码:
```java
package com.example.xin.duihua;
import android.support.v7.app.ActionBarActivity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
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.Toast;
public class MainActivity extends ActionBarActivity {
private Button bt1, bt2, bt3, bt4, bt5;
private String[] single_list = {"男", "女", "男程序猿", "女博士"};
private String[] multi_list = {"足球", "篮球", "男人", "女人"};
private String[] item_list = {"老板", "经理", "主管", "组长"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initEvent();
}
//初始化事件处理方法
private void initEvent() {
bt1 = findViewById(R.id.btn1);
bt2 = findViewById(R.id.btn2);
bt3 = findViewById(R.id.btn3);
bt4 = findViewById(R.id.btn4);
bt5 = findViewById(R.id.btn5);
bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//处理单选按钮1的点击事件
}
});
bt2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//处理单选按钮2的点击事件
}
});
bt3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//处理单选按钮3的点击事件
}
});
bt4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//处理单选按钮4的点击事件
}
});
bt5.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//处理单选按钮5的点击事件
}
});
}
}
```
重构后的代码如下:
```java
private void Event() {
// 绑定点击事件监听器
findViewById(R.id.bt_1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
showDialog1();
}
});
findViewById(R.id.bt_2).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
showDialog2();
}
});
findViewById(R.id.bt_3).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
showDialog3();
}
});
findViewById(R.id.bt_4).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
showDialog4();
}
});
findViewById(R.id.bt_5).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
showDialog5();
}
});
}
/**
* 显示第一个确认对话框
*/
protected void showDialog1() {
// TODO Auto-generated method stub
}
```
```
AlertDialog.Builder builder = new AlertDialog.Builder(this); // 获得一个builder对象
builder.setTitle("确认对话框"); // 设置标题
builder.setIcon(R.drawable.ic_launcher); // 设置图标
builder.setMessage("确认对话框提示内容"); // 设置内容
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 点击了确定按钮
Toast.makeText(MainActivity.this, "点击了确定按钮!", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 点击了取消按钮
Toast.makeText(MainActivity.this, "点击了取消按钮!", Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create(); // 获取dialog
dialog.show(); // 显示对话框
}
/**
* 显示单选按钮对话框
*/
protected void showDialog2() {
// TODO Auto-generated method stub
AlertDialog.Builder builder = new AlertDialog.Builder(this); // 获得一个builder对象
builder.setTitle("确认对话框"); // 设置标题
builder.setIcon(R.drawable.ic_launcher); // 设置图标
builder.setMessage("确认对话框提示内容"); // 设置内容
builder.setSingleChoiceItems(new String[] {"选项1", "选项2", "选项3"}, // 设置选项列表
getSelectedItemIndex(), new DialogInterface.OnClickListener() { // 点击事件处理方法
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0: // 点击了选项1
Toast.makeText(MainActivity.this, "点击了选项1", Toast.LENGTH_SHORT).show();
break;
case 1: // 点击了选项2
Toast.makeText(MainActivity.this, "点击了选项2", Toast.LENGTH_SHORT).show();
break;
case 2: // 点击了选项3
Toast.makeText(MainActivity.this, "点击了选项3", Toast.LENGTH_SHORT).show();
break;
}
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { // 确定按钮的点击事件处理方法
@Override
public void onClick(DialogInterface dialog, int which) {}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {}); // 取消按钮的点击事件处理方法
AlertDialog dialog = builder.create(); // 获取dialog对象并显示出来。注意这里的参数为null表示没有父窗口传递进来的参数。如果需要传递参数给子窗口可以传入Bundle类型的对象。例如:dialog = builder.create(); Bundle bundle = new Bundle(); bundle.putString("key","value"); dialog.getWindow().setIntent(new Intent()); dialog.getWindow().setAttributes(bundle); dialog.show();//显示对话框。这个方法是必须的,不能省略。否则会出现运行错误。因为在创建完dialog后必须要调用show()方法才能正常显示出来。而且在调用show()方法之前必须先创建dialog,不能颠倒顺序。所以说一定要按照以下步骤来编写代码:首先创建builder对象然后通过builder来创建dialog对象最后再调用show()方法显示出来。这样就不会出现异常了。
请将以下代码重构并保持段落结构:
```java
builder.setTitle("选择性别");//设置标题
builder.setIcon(R.drawable.ic_launcher);//设置图标
builder.setSingleChoiceItems(single_list, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
String str = single_list[which];
Toast.makeText(MainActivity.this, "这个人是" + str + "!", Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create();//获取dialog
dialog.show();//显示对话框
}
/**
* 显示多选按钮对话框
*/
protected void showDialog3() {
// TODO Auto-generated method stub
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("爱好");//设置标题
builder.setIcon(R.drawable.ic_launcher);//设置图标
builder.setMultiChoiceItems(multi_list, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked){
// ...
} else {
// ...
}
}
});
Button positiveButton = builder.create().show();//获取确定按钮并显示
Button negativeButton = builder.create().show();//获取取消按钮并显示
}
```
Toast.makeText(MainActivity.this, "我喜欢上了" + multi_list[which] + "!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "我不喜欢你" + multi_list[which] + "了!", Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create(); //获取dialog
dialog.show(); //显示对话框
}
/**
* 显示列表对话框
*/
protected void showDialog4() {
// TODO Auto-generated method stub
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("部门列表");
builder.setIcon(R.drawable.ic_launcher);
builder.setItems(item_list, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "我炒了" + item_list[arg1], Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create(); //获取dialog
dialog.show(); //显示对话框
}
/**
* 显示自定义对话框
*/
protected void showDialog5() {
// TODO Auto-generated method stub
// 将xml转化为View
以下是重构后的代码:
```java
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.dialog_layout, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("自定义对话框"); //设置标题
builder.setIcon(R.drawable.ic_launcher); //设置图标
builder.setView(view);
AlertDialog dialog = builder.create(); //获取dialog
dialog.show(); //显示对话框
}
```
dialog_layout布局文件内容如下:
```xml
android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/IV" android:src="@drawable/item5"/> android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> ... /> ``` 以下是您提供的内容的重构版本: ```xml android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请输入内容" android:layout_weight="1"/> ``` 这是重构后的代码。请注意,我删除了原始代码中的HTML标签和注释。