Android java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView

一世执手 提交于 2019-12-06 01:43:26

You can try this

mListView.setOnItemClickListener(new OnItemClickListener(){
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            TextView txtview = (TextView)view.findViewById(R.id.listTextView);
            String product = txtview.getText().toString();
            Log.v("mSelectedProduct", product);
        }           
    });

Use this:

String product = ((TextView) view.findViewById(R.id.listTextView)).getText().toString();

The View you are getting inside OnItemClickListener will return the parent layout ,That is LinearLayout in your case.

you can get your textview by doing following :

mListView.setOnItemClickListener(new OnItemClickListener(){
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            TextView txtview = (TextView)view.findViewById(R.id.listTextView);
            String product = txtview.getText().toString();
            Log.v("mSelectedProduct", product);
        }           
    });
mListView.setOnItemClickListener(new OnItemClickListener(){
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            TextView textview= (TextView)view.findViewById(R.id.TEXTVIEW_ID);
            String product = textView.getText().toString();
            Log.v("mSelectedProduct", product);
        }           
    });

Replace "TEXTVIEW_ID" with the id of textview you have given in list view item xml(If not given, give one).

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!