Android - 如何向对话框添加两个文本字段

时间:2011-12-15 05:58:43

标签: android

我正在尝试将文本字段添加到对话框中,但它似乎不起作用......这是我的代码。任何人都可以修改我的代码或给我一些关于如何在对话框中添加两个文本字段的指导吗?

感谢。

            final EditText input1 = new EditText(this);
        input1.setText("note");
        input1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                input1.setText("");
            }
        });
        final EditText input2 = new EditText(this);
        input2.setMinLines(1);
        input2.setText("0.0");
        input2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                input2.setText("");
            }
        });
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(1);
        layout.addView(input1);
        layout.addView(input2);


        return new AlertDialog.Builder(this).
        // code for showing Ok and Cancel button
        .setView(layout).create();

3 个答案:

答案 0 :(得分:5)

创建xml布局文件

dialog_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:gravity="center_horizontal" android:background="#ffffff"
    android:orientation="vertical" android:padding="10dp">
    <EditText android:id="@+id/text1" android:layout_width="fill_parent" 
        android:layout_height="wrap_content"/>
    <EditText android:id="@+id/text2" android:layout_width="fill_parent" 
        android:layout_height="wrap_content" />
</LinearLayout>

您的对话框代码

final AlertDialog alertDialog = new AlertDialog.Builder(this).create();  
View dialog_layout = getLayoutInflater().inflate(R.layout.dialog_layout, null);
 // Create the text field in the alert dialog...
EditText text1 = (EditText) dialog_layout.findViewById(R.id.text1);
EditText text2 = (EditText) dialog_layout.findViewById(R.id.text2);        

alertDialog.setView(dialog_layout);
alertDialog.show();

您可以根据需要在布局中添加更多控件

答案 1 :(得分:3)

当我需要的不仅仅是几个对话框时,我个人使用了一项新活动。如果你添加

<activity android:theme="@android:style/Theme.Dialog">
</activity>

它将显示为一个对话框,允许您使用多个TextViews,Buttons,ImageViews,Spinners等。

修改

将它添加到您的androidmanifest文件中以获取您想成为对话框的动画,例如

    <activity android:name=".About" android:label="@string/app_name"
        android:theme="@android:style/Theme.Dialog">
        <intent-filter>
            <action android:name="com.example.ABOUT" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

答案 2 :(得分:0)

尝试像这样添加

final AlertDialog alertDialog = new AlertDialog.Builder(this).create();  
     Context c = getBaseContext();
     // Create the text field in the alert dialog...
     text = new EditText(this);
     text.setSingleLine();       

     // Add text to dialog
     alertDialog.setView(text); 
     alertDialog.setTitle("Alert");  
         alertDialog.setMessage("error");  
         alertDialog.setButton("OK", new DialogInterface.OnClickListener() {  
             public void onClick(DialogInterface dialog, int which) {                                       

             }  
         });         
         alertDialog.show();         
     }