带有图像的 Listview 中的 OnItemClickListener 不起作用

OnItemClickListener in Listview with image is not working

我是 android 的初学者。我使用图像在 ListView 中创建了我的 OnItemListener,但是 当我单击列表项时,我的应用程序崩溃了。

这是我的MainActivity.java

package com.listview.test.arrayadapter;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
    ListView l1;
//    RelativeLayout r1;
    TextView t1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        l1= (ListView) findViewById(R.id.listview);
//        r1= (RelativeLayout) findViewById(R.id.activity_main);

     String[] list = {"item1","item2","item3","item4","item5","item6","item7","item8","item9","item10"};
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.single_view , R.id.textview, list);

        l1.setAdapter(adapter);
        l1.setOnItemClickListener(this);
    }

        @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            TextView temp = (TextView) view;
            Toast.makeText(this, temp.getText() + "" + position, Toast.LENGTH_LONG).show();
    }
}

我认为您遇到了异常,因为您的 R.layout.single_view 不是 TextView,并且您正试图将其转换为它。改为做这样的事情:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    TextView temp = (TextView) view.findViewById(R.id.textview);
    Toast.makeText(this, temp.getText() + "" + position, Toast.LENGTH_LONG).show();
}