XML 文件(matrix_cell.xml) 被夸大。
<EditText
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/rect_edit_text"
android:textCursorDrawable="@drawable/cursor_black"
android:textColor="@color/colorAccent"
android:gravity="center_horizontal"
android:inputType="number"
android:layout_margin="1dp"
android:layout_weight="1" />
膨胀 View 的代码:
LayoutInflater inflater = LayoutInflater.from(this);
TableRow tableRow = new TableRow(this);
inflater.inflate(R.layout.matrix_cell, tableRow, true);
创建的 EditText View 不可选择,当单击 EditText View 时,输入焦点仍保留在之前的输入焦点上。
最佳答案
将 id
添加到您的 EditText
。
可以这样做
<EditText
android:id="@+id/edittext"
android:inputType="text"
...
...
/>
它应该可以解决你的问题。此外,您是否使用任何布局并将您的 EditText
作为其子项?这是强制性的。您必须记住 EditText
是一个 View ,而不是 Layout
。
充气器充气 View 后,使用 view.findViewById(R.id.edittext)
方法获取 EditText
进行工作。
更新
正如 Alexander Kulyakhtin 所说在 this answer ,
for(int i=0; i<((ViewGroup)v).getChildCount(); ++i) { View nextChild = ((ViewGroup)v).getChildAt(i); }
你可以得到 child 。正如我所说,使用 nextChild.findViewById(R.id.edittext)
获取 EditText
并使用它。
关于android - 膨胀的 EditText View 不可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36477455/