【发布时间】:2018-06-27 08:10:54
【问题描述】:
我正在尝试创建一个回收视图,并且我还在我的应用程序中使用标签布局。我一步一步地按照教程进行操作,但我不知道它为什么会崩溃。这是代码。我猜这部分有问题:
@Override
public int getItemCount() {
return herosList.size();
}
每当我将返回值更改为 0 时,应用程序都会运行,但 recycleview 中不会出现任何内容
public class Heros {
public String name;
public int img;
}
RecycleAdapter.java
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.HerosViewHolder> {
ArrayList<Heros> herosList;
public RecycleAdapter(ArrayList<Heros> heross){
herosList=heross;
}
@Override
public HerosViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.eachrow,parent,false);
return new HerosViewHolder(view);
}
@Override
public void onBindViewHolder(HerosViewHolder holder, int position) {
Heros heros=herosList.get(position);
holder.txtName.setText(heros.name);
}
@Override
public int getItemCount() {
return herosList.size();
}
public class HerosViewHolder extends RecyclerView.ViewHolder{
public ImageView herosImg;
public TextView txtName;
public HerosViewHolder(View itemView) {
super(itemView);
herosImg=(ImageView) itemView.findViewById(R.id.imgg);
txtName=(TextView)itemView.findViewById(R.id.txtHerosName);
}
}
}
public class PageFragment extends Fragment {
public static final String ARG_PAGE = "ARG_PAGE";
private int mPage;
RecyclerView recyclerView;
LinearLayoutManager manager;
String[] names={"abs","vline","chest"};
ArrayList<Heros> passName;
public static PageFragment newInstance(int page) {
Bundle args = new Bundle();
args.putInt(ARG_PAGE, page);
PageFragment fragment = new PageFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPage = getArguments().getInt(ARG_PAGE);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
passName=new ArrayList<>();
View view = inflater.inflate(R.layout.fragment_page, container,
false);
recyclerView=(RecyclerView)view.findViewById(R.id.rec);
manager=new LinearLayoutManager(G.context);
recyclerView.setLayoutManager(manager);
recyclerView.setHasFixedSize(true);
for (int i=0;i<3;i++){
Heros heros=new Heros();
heros.name=names[i];
passName.add(heros);
}
recyclerView.setAdapter(new RecycleAdapter(passName));
return view;
}
}
【问题讨论】:
-
你遇到了什么错误?
-
添加崩溃的stacktrace
-
显示你的日志猫
-
在这个方法中使用这个关键字
public RecycleAdapter(ArrayList<Heros> heross){ this.herosList=heross; } -
任何堆栈跟踪??分享你的日志!
标签: android eclipse android-studio android-recyclerview