一、Main Class:
public void search() {
Builder dialog = new AlertDialog.Builder( this );
LayoutInflater inflater = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout layout = (LinearLayout)inflater.inflate(R.layout.dialogview, null );
dialog.setView(layout);
et_search = (EditText)layout.findViewById(R.id.searchC);
dialog.setPositiveButton( " 查找 " , new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String searchC = et_search.getText().toString();
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString( " search " , searchC);
intent.putExtras(bundle);
intent.setClass(ViewResultActivity. this , SearchResult. class );
ViewResultActivity. this .startActivity(intent);
}
});
dialog.setNegativeButton( " 取消 " , new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
}
二、dialogview.xml
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< LinearLayout xmlns:android = " http://schemas.android.com/apk/res/android "
android:orientation = " vertical "
android:layout_width = " fill_parent "
android:layout_height = " fill_parent "
>
< EditText
android:id = " @+id/searchC "
styles = " @style/edittext_style1 "
android:layout_width = " 200px "
android:layout_height = " wrap_content "
android:gravity = " left "
/>
</ LinearLayout >
由于Android dialog本身没有提供取得Edittext内容的回调函数,所以需要自己写.....
简单的方法是使用Activity模拟Dialog,有布局更自由,消息传递更方便地优点。
写一个自定义的AlertDialog:
01.
AlertDialog.Builder alert =
new
AlertDialog.Builder(aBrainExploration.
this
);
02.
03.
alert.setTitle(R.string.label_enterOneName);
04.
05.
// Set an EditText view to get user input
06.
final
EditText input =
new
EditText(aBrainExploration.
this
);
07.
alert.setView(input);
08.
09.
alert.setPositiveButton(
"Ok"
,
10.
new
DialogInterface.OnClickListener() {
11.
public
void
onClick(DialogInterface dialog,
12.
int
whichButton) {
13.
Appendable value = input.getText();
14.
// setTitle(value.toString());
15.
}
16.
});
17.
18.
alert.setNegativeButton(
"Cancel"
,
19.
new
DialogInterface.OnClickListener() {
20.
public
void
onClick(DialogInterface dialog,
21.
int
whichButton) {
22.
// Canceled.
23.
}
24.
});
25.
26.
alert.show();