有时候项目中需要封装自己所需的Dialog对话框。
自己写Dialog的layout布局文件
布局文件layout_dialog.xml:
<?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingBottom="5dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="5dp" > <TextView android:id="@+id/Manual_LastRead" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="测试Dialog"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="姓名:" android:textSize="14sp" /> <EditText android:id="@+id/name_Input" android:layout_width="230dp" android:layout_height="45dp" android:textSize="14sp" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="年龄" android:textSize="14sp" /> <EditText android:id="@+id/old_Input" android:layout_width="230dp" android:layout_height="45dp" android:digits="0123456789" android:inputType="number" android:textSize="14sp" /> </LinearLayout> </LinearLayout>TestDialogActivity
public class TestDialogActivity extends Activity {
public final static int DIALOG_MESSAGE = 0;
private TextView mTextResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_dialog);
mTextResult = (TextView) findViewById(R.id.test_result);
findViewById(R.id.test_dialog).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(DIALOG_MESSAGE);
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_MESSAGE:
LayoutInflater factory = LayoutInflater.from(this);
final LinearLayout rView = (LinearLayout)factory.inflate(R.layout.layout_dialog, null);
final EditText nameEdit = (EditText)rView.findViewById(R.id.name_Input);
final EditText oldEdit = (EditText)rView.findViewById(R.id.old_Input);
return new AlertDialog.Builder(this).setView(rView).setPositiveButton("确认", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
mTextResult.setText("姓名:" +nameEdit.getText().toString() + " 年龄:" + oldEdit.getText().toString());
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
}).create();
}
return super.onCreateDialog(id);
}
}