簡體   English   中英

RelativeLayout無法轉換為TextView

[英]RelativeLayout cannot cast to TextView

我有一個錯誤,其中當選中列表視圖中的復選框/行時,它指出錯誤android.widget.RelativeLayout cannot be cast to 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 Relativelayout。

<?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 在這里給出的答案將為您服務,但這是您的問題的短期解決方案。

每當將OnItemClickListener添加到ListView ,該函數將始終為您提供根視圖/父視圖。 如果您添加更多內容,例如RelativeLayoutEditText ,則必須按以下步驟查找它:

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 ,然后對其進行操作。

您得到的父布局是您的情況下的相對布局。 您必須使用其ID獲取CheckedTextView。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM