尝试为 Recyclerview 设置 onClick
Trying to set onClick for Recyclerview
我正在尝试设置一个可点击的卡片视图,以便在单击列表中的卡片时,一个片段会在我的回收视图中展开。到目前为止,如果我敬酒,我可以点击注册并显示位置,但是当我尝试在 fragment_container 中膨胀新视图时,我不断收到错误。
下面显示的代码正在抛出 "Error:(49, 54) error: non-static method getFragmentManager() cannot be referenced from a static context"
有人可以告诉我如何解决这个错误吗?
package com.packagename.adapters_holders;
import android.app.Activity;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.packagename.R;
import com.packagename.WhatIWantToDisplayFragment;
/**
* RecyclerView Holder
*/
public abstract class MyPageHolder extends RecyclerView.ViewHolder{
protected Activity activity;
protected MyPageAdapter adapter;
public TextView txtTitle, txtDescription;
public ImageView imgImage;
public View view;
public MyPageHolder(final View v, final Activity activity, MyPageAdapter adapter) {
super(v);
this.activity = activity;
this.adapter = adapter;
imgImage = (ImageView) v.findViewById(R.id.cardview_image);
txtTitle = (TextView) v.findViewById(R.id.cardview_title);
txtDescription = (TextView) v.findViewById(R.id.cardview_description);
view = (CardView) v.findViewById(R.id.card_view);
view = itemView;
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//what to put here
FragmentManager fm = FragmentActivity.getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_container, new WhatIWantToDisplayFragment(), "fragment_screen");
ft.commit();
break;
}
});
}
public void bind(ListItems dataModel, Activity activity, int position) {
ListItems m = (ListItems)dataModel;
imgImage.setImageResource(m.image);
txtTitle.setText(m.title);
txtDescription.setText(m.description);
}
}
你不能像那样创建 FragmentManager
实例
FragmentManager fm = FragmentActivity.getFragmentManager();
、
改为使用 activity 个实例创建一个。
FragmentManager fm = activity.getFragmentManager();
我正在尝试设置一个可点击的卡片视图,以便在单击列表中的卡片时,一个片段会在我的回收视图中展开。到目前为止,如果我敬酒,我可以点击注册并显示位置,但是当我尝试在 fragment_container 中膨胀新视图时,我不断收到错误。
下面显示的代码正在抛出 "Error:(49, 54) error: non-static method getFragmentManager() cannot be referenced from a static context"
有人可以告诉我如何解决这个错误吗?
package com.packagename.adapters_holders;
import android.app.Activity;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.packagename.R;
import com.packagename.WhatIWantToDisplayFragment;
/**
* RecyclerView Holder
*/
public abstract class MyPageHolder extends RecyclerView.ViewHolder{
protected Activity activity;
protected MyPageAdapter adapter;
public TextView txtTitle, txtDescription;
public ImageView imgImage;
public View view;
public MyPageHolder(final View v, final Activity activity, MyPageAdapter adapter) {
super(v);
this.activity = activity;
this.adapter = adapter;
imgImage = (ImageView) v.findViewById(R.id.cardview_image);
txtTitle = (TextView) v.findViewById(R.id.cardview_title);
txtDescription = (TextView) v.findViewById(R.id.cardview_description);
view = (CardView) v.findViewById(R.id.card_view);
view = itemView;
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//what to put here
FragmentManager fm = FragmentActivity.getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_container, new WhatIWantToDisplayFragment(), "fragment_screen");
ft.commit();
break;
}
});
}
public void bind(ListItems dataModel, Activity activity, int position) {
ListItems m = (ListItems)dataModel;
imgImage.setImageResource(m.image);
txtTitle.setText(m.title);
txtDescription.setText(m.description);
}
}
你不能像那样创建 FragmentManager
实例
FragmentManager fm = FragmentActivity.getFragmentManager();
、
改为使用 activity 个实例创建一个。
FragmentManager fm = activity.getFragmentManager();