android - 膨胀的 EditText View 不可选

标签 android

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/

相关文章:

android - Chrome 自定义标签和 textview

android - AlarmManager 以不一致的方式发送带有旧数据的未决 Intent

android - HttpURLConnection getInputStream() 中的 EOFException 和 FileNotFoundException

android - 在后台解析推送通知

android 启动画面/加载画面

android - LoopJ AndroidAsyncHttp 和 JSON POST 数组

android - 在代理后面工作的 Flutter android studio 3.2 中的 Gradle 问题

android - 禁用与收件人发送电子邮件 Intent 的直接共享

c# - Android C# Xamarin 编译错误

android - Android 应用程序的安全/ protected 内容分发