【发布时间】:2019-01-17 15:07:28
【问题描述】:
适配器类
公共类 juiceAdapterGreens 扩展 RecyclerView.Adapter { AppCompatActivity appCompatActivity;
private List<Greens> juiceList;
public static class MyViewHolder extends RecyclerView.ViewHolder {
public TextView header,quantity,price,pieces;
public ImageView juicebottle;
public MyViewHolder(View view) {
super(view);
header = (TextView) view.findViewById(R.id.headergreens);
quantity = (TextView) view.findViewById(R.id.quantitygreens);
price = (TextView) view.findViewById(R.id.pricegreens);
pieces = (TextView) view.findViewById(R.id.piecesgreens);
juicebottle=(ImageView)view.findViewById(R.id.juicebottlegreens);
}
}
public juiceAdapterGreens(Context context, List<Greens> juiceList) {
this.juiceList = juiceList;
}
@Override
public juiceAdapterGreens.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.home_greens, parent, false);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DummyFragement dummyFragement = new DummyFragement ();
Context context=null;
((MainActivity)context).getSupportFragmentManager().beginTransaction().replace(R.id.container, dummyFragement,"OptionsFragment").addToBackStack(null).commit();
Fragment f1=Profile_Frag.newInstance("","");
replace(f1);
}
});
return new juiceAdapterGreens.MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(juiceAdapterGreens.MyViewHolder holder, int position) {
Greens juice = juiceList.get(position);
holder.header.setText(juice.getTitle());
holder.quantity.setText(juice.getQuantity());
holder.price.setText(juice.getPrice());
holder.pieces.setText(juice.getPieces());
holder.juicebottle.setImageResource(juice.getJuicebottle());
}
@Override
public int getItemCount() {
return juiceList.size();
}
private void replace(Fragment f1) {
FragmentManager fm=this.appCompatActivity.getSupportFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
ft.addToBackStack(null);
ft.replace(R.id.frame_content_main,f1);
ft.commit();
}
}
getSupportFragmentManager() 显示为红色,我只需要使用上面输入的适配器类加载一个片段。请帮帮我。
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NullPointerException
at com.example.jayarajarackal.juiceapp.juiceAdapterGreens.replace(juiceAdapterGreens.java:84)
at com.example.jayarajarackal.juiceapp.juiceAdapterGreens.access$000(juiceAdapterGreens.java:20)
at com.example.jayarajarackal.juiceapp.juiceAdapterGreens$1.onClick(juiceAdapterGreens.java:60)
at android.view.View.performClick(View.java:4204)
at android.view.View$PerformClick.run(View.java:17355)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5069)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Application terminated.
【问题讨论】:
-
你好,拉朱!欢迎来到 StackOverflow!请考虑查看stackoverflow.com/tour 以了解有关 StackOverflow 的更多信息。其次,你能展示一下你是如何设置
appCompatActivity的吗?您的适配器类根本没有设置appCompatActivity。 -
除非它在红色标记中显示错误。发帖前忘记删了,抱歉