关闭

[Android]取得Dialog中EditText的内容问题

标签: dialogandroidlayoutinputsearchencoding
2096人阅读 评论(0) 收藏 举报
分类:

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:332789次
    • 积分:3985
    • 等级:
    • 排名:第7851名
    • 原创:22篇
    • 转载:259篇
    • 译文:0篇
    • 评论:63条
    最新评论