一、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();