java - relativelayout无法转换为textview

标签 java android android-relativelayout

我遇到一个错误,当选择 ListView 中的复选框/行时,它会指出错误 android.widget.RelativeLayout 无法转换为 android.widget.TextView。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String selectedBet = ((TextView)view).getText().toString();
            if (selectedBets.contains(selectedBet)){
                selectedBets.remove(selectedBet); //uncheck
            }else{
                selectedBets.add(selectedBet);
            }
        }
    });

此外,这是我的 XML 相对布局。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="75dp">

    <CheckedTextView
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:gravity="center_vertical"
        android:checkMark="?android:attr/listChoiceIndicatorMultiple"
        android:padding="5dp"
        android:id="@+id/checkmark" />
</RelativeLayout>

我似乎无法工作,我不知道这是如何工作的。

最佳答案

Nilesh Rathod 给出的答案 here会对您有用,但它只是解决您问题的短期解决方案。

每当您将 OnItemClickListener 添加到 ListView 时,该函数将始终为您提供 Root View /父 View 。如果您添加更多内容,例如 RelativeLayout 内的 EditText,您必须按如下方式找到它:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        TextView textView = view.findViewById(R.id.textViewId);
        EditText editText = view.findViewById(R.id.editTextId);
        String selectedBet = textView.getText().toString();
    }
});

您必须从 onItemClick 函数获得的容器布局中找到特定的 View,然后对其进行操作。

关于java - relativelayout无法转换为textview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56440509/

相关文章:

java - 更新单元格值 (JTable)

java - Spring Rest Docs 片段模板被忽略

java - Android ListView ,如何无边距定位 ListView ?

android - 如何在 Java 代码中更改嵌套布局的 subview 组的宽度?

android - 另一个相对布局居中问题

java - 如何修复 'Element ns1:WS_PersonaGetActEmpresarial.Execute has a relative namespace: ns1="DGI_Modernizacion_Consolidado

java - 写入并保存文件并打开它

android - 在Android Studio中找不到离线Gradle插件

java - 对 SQLiteDatabase 使用单例设计模式

android - 实现 ActionBar 向上按钮