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

转载 2011年01月17日 10:52:00

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

Android 自定义布局dialog使用(解决edittext无法弹出输入法的问题)

对话框,自定义布局: public void showDialog() { if(alertDialog != null && alertDialog.isShowing()){ retur...

解决Android EditText多行输入,内容或边框显示的问题

在Android中,如下面局: [code=java]                       android:layout_width="match_parent"               ...

android listview 每一项都是edittext 导致的坑爹问题 内容的保存和焦点,光标位置的设置

activity布局:布局很简单,只有一个listview

关于获取dialog中edittext的值问题

private void myDialog() { AlertDialog.Builder dialog = new AlertDialog.Builder(this); ...

解决dialog中edittext点击两次才响应事件的问题

edittext响应事件用onclick点击第一次会先获取焦点,第二次才响应事件,这个思路需要处理焦点事件比较繁琐,因此我们用ontouch事件,会发现用ontouch事件点击的时候,会发现响应三次事...

android中dialog中的EditText无法弹出输入法对话框

很奇怪的是,如果你用原生的AlertDialog,通过setView(new EditText())的方法添加输入框,永远都能弹出输入法; 而在我们自定义AlertDialog中,经常会遇到弹不出输...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Android]取得Dialog中EditText的内容问题
举报原因:
原因补充:

(最多只允许输入30个字)