Java 如何在对话框中放置编辑文本?

Java 如何在对话框中放置编辑文本?,java,android,android-edittext,dialog,Java,Android,Android Edittext,Dialog,我有以下代码: <EditText android:id="@+id/etC" android:layout_height="wrap_content" android:layout_width="fill_parent" android:hint="@string/amount_credits" android:inputType="number" android:imeOptions="a

我有以下代码:

<EditText
        android:id="@+id/etC" 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:hint="@string/amount_credits"
        android:inputType="number"
        android:imeOptions="actionDone" 
        android:singleLine="true" />

现在我不明白问题出在哪里了。有人能帮我吗?谢谢。

我想你不能那样设置编辑文本

试试这个:

  • 创建新布局(包含EditText)
  • 扩大布局
  • 设置AlertDialog的布局
以下是
res/layout/prompts.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dp" >

    <EditText
        android:id="@+id/edt_nm"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <requestFocus />

    </EditText>

</LinearLayout>

我猜您在某个地方收到了一条错误消息,大意是“视图已经有父视图” 问题是,每次生成警报时,您都试图重用相同的EditText对象。 因此,或者通过使用
edc=new EditText()动态创建一个新的EditText对象来获取它
或者使用
inflate()
方法而不是
findViewById()
,因为每次充气都会给你一个新实例。

试试这个

EditText etC;

LayoutInflater factory = LayoutInflater.from(yourActivity.this);
final View textEntryView = factory.inflate(R.layout.yourlayout, null);          
etC= (EditText)textEntryView.findViewById(R.id.etC);

new AlertDialog.Builder(yourActivity.this)
.setTitle("xx")
.setIcon(R.drawable.logo3)
.setView(textEntryView)
.....
看这个例子

LayoutInflater li = LayoutInflater.from(classname.this);    
View dialogView =li.inflate(R.layout.common_dialog_layout, null);
AlertDialog.Builder dialogwindow = new AlertDialog.Builder(classname.this);
                                dialogwindow.setView(dialogView);_addEditText = (EditText) dialogView.findViewById(R.id.editTextDialogtext);
_dialogTextView=(TextView)dialogView.findViewById(R.id.dialog_textview);
下面是xml类

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dp" >

    <TextView
        android:id="@+id/dialog_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Type Your Text : "
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/editTextDialogtext"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <requestFocus />

    </EditText>

LayoutInflater li = LayoutInflater.from(classname.this);    
View dialogView =li.inflate(R.layout.common_dialog_layout, null);
AlertDialog.Builder dialogwindow = new AlertDialog.Builder(classname.this);
                                dialogwindow.setView(dialogView);_addEditText = (EditText) dialogView.findViewById(R.id.editTextDialogtext);
_dialogTextView=(TextView)dialogView.findViewById(R.id.dialog_textview);
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dp" >

    <TextView
        android:id="@+id/dialog_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Type Your Text : "
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/editTextDialogtext"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <requestFocus />

    </EditText>