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>