Android 试图在ArrayAdapter中执行其他活动-Nexus-5上出错

Android 试图在ArrayAdapter中执行其他活动-Nexus-5上出错,android,android-listview,android-adapter,Android,Android Listview,Android Adapter,我有一个特定于设备的错误,这有点奇怪。 在myArrayAdapter中,我有一个ImageView并单击ImageView进入一个新的活动。这一切都在我的三星S4(API 19)上运行良好,但在我的Nexus5(API 22)上它崩溃了,没有错误日志 这是我的代码: FArrayAdapter.java public FArrayAdapter(Context context, int resourceId, List<Feeds> feedsList) { super(c

我有一个特定于设备的错误,这有点奇怪。 在my
ArrayAdapter
中,我有一个
ImageView
并单击
ImageView
进入一个新的
活动。这一切都在我的三星S4(API 19)上运行良好,但在我的Nexus5(API 22)上它崩溃了,没有错误日志

这是我的代码:

FArrayAdapter.java

public FArrayAdapter(Context context, int resourceId, List<Feeds> feedsList) {
    super(context, resourceId, feedsList);
    this.resourceId = resourceId;
    this.context = context;
    this.mfeeds = feedsList;
    this.inflater = ((Activity) context).getLayoutInflater();
}

public View getView(int position, View convertView, ViewGroup parent) {

   if (convertView == null) {
        inflater = ((Activity) context).getLayoutInflater();
        convertView = inflater.inflate(resourceId, parent, false);
    }

    ImageView image1 = (ImageView) view.findViewById(R.id.iv_t_1);



   ....
    final Intent intent = new Intent(context, ZActivity.class);

   if (image1 != null) {
        image1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                intent.putExtra("SelectedImagePosition", 1);
                Log.v("Error","here"); //i can see this log when i click. App crashes soon after.
                context.startActivity(intent);
            }
        });
    }

}
public FArrayAdapter(上下文上下文、int-resourceId、列表提要列表){
super(上下文、资源ID、提要列表);
this.resourceId=resourceId;
this.context=上下文;
this.mfeeds=feedsList;
this.inflater=((活动)上下文).getLayoutFlater();
}
公共视图getView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
充气器=((活动)上下文).getLayoutFlater();
convertView=充气机。充气(resourceId,父项,false);
}
ImageView image1=(ImageView)view.findViewById(R.id.iv_t_1);
....
最终意图=新意图(上下文,ZActivity.class);
如果(image1!=null){
image1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
intent.putExtra(“SelectedImagePosition”,1);
Log.v(“Error”,“here”);//我可以在单击时看到此日志。应用程序很快就会崩溃。
背景。开始触觉(意图);
}
});
}
}

首先,始终尝试不要在适配器内实现listner

您应该在片段中实现项侦听器,如:

 View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String name = v.getTag().toString();
        }
    };
如果您想通过意图在活动中传递任何信息,您应该在标记中设置值,如:

在适配器中,应该通过来自片段的构造函数传递listner对象

在getView()方法下:


您初始化的
image1
?已编辑..我在上面这样做是的,但我必须通过意图将信息传递给活动。该信息在适配器中。我怎样才能在我的活动中得到它谢谢。但问题是,当我单击图像时,我想发送所单击图像的图像路径及其下方文本视图的字符串。所以我的问题是,我如何才能得到一个没有点击的项目(即文本视图)的值,根据你最尖刻的代码,似乎你有一个提要对象,你有你正在设置的图像和文本的路径,如果是真的,你可以在视图中设置该提要对象。设置标签(提要),点击项目,你可以在那里得到它,如果我有多个ImageView,并且我想为每个ImageView设置侦听器,则此选项不起作用。如果您有多个ImageView,则此选项在任何情况下都应起作用。
image1.setOnClickListener(listener);
image1.setTag(value); //set value as either class object or any single value here