自定义列表视图导致我的应用崩溃的问题

问题描述 投票:1回答:1

我正在尝试对项目单击监听器进行操作,但是当我这样做时,应用程序崩溃了,我不知道为什么这是我正在使用的代码。它一直崩溃,请帮助

package com.embid2.myapplication;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    ListView listView;
    String[] menutitles;
    int[] imges={R.drawable.iconfinder_food__dish__kitchen__3653390,R.drawable.iconfinder_pages_1118205,R.drawable.iconfinder_special_price_5418372};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Resources res =getResources();
        menutitles=res.getStringArray(R.array.titles);
        listView=(ListView) findViewById(R.id.list);
        myadapter myadapter=new myadapter(this,menutitles,imges);
        listView.setAdapter(myadapter);

    }
}

class myadapter extends ArrayAdapter<String>
{
    Context context;
    int[] imges;
    String[] titles;
    myadapter(Context c,String[]titles,int[] imges)
    {
        super(c,R.layout.single_row,R.id.text,titles);
        this.context=c;
        this.imges=imges;
        this.titles=titles;
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        LayoutInflater inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View row=inflater.inflate(R.layout.single_row,parent,false);
        ImageView myimage =(ImageView)row.findViewById(R.id.image);
        TextView mytitle=(TextView)row.findViewById(R.id.text);
        myimage.setImageResource(imges[position]);
        mytitle.setText(titles[position]);
        return row;
    }
}
android image listview view
1个回答
0
投票

应用程序崩溃,因为没有任何可单击的方法。

在您的getView方法中,您可以设置点击监听器,如

myImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //do some stuff
        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.