在做,recyclerview代码没出错的情况下,出现xxxapp has stopped是什么原因?
public class MainActivity extends AppCompatActivity {
private RecyclerView mList;//成员变量,全局都能操作
private List<ItemBean> mData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到控件
mList = (RecyclerView) this.findViewById(R.id.parent);
//准备数据
initData();
}
//这个方法用于模拟数据
private void initData() {
//List<DataBea>---->Adapter---->setAdapter---->显示数据
//创建数据集合
mData = new ArrayList<>();
//创建模拟数据
for(int i=0;i< Datas.icons.length;i++){
//创建数据对象
ItemBean data=new ItemBean();
data.icon=Datas.icons[i];
data.title="我是第"+i+"个条目";
//添加到集合里头
mData.add(data);
}
//RecycleView需要设置样式1就是布局管理器
LinearLayoutManager layoutManager=new LinearLayoutManager(this);
mList.setLayoutManager(layoutManager);
//创建适配器
ListViewAdapter adapter=new ListViewAdapter(mData);
//设置到RecycleView里
mList.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.menu,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
int itemId=item.getItemId();
switch (itemId){
case R.id.list_view_v_stander:
break;
case R.id.list_view_v_reverse:
break;
case R.id.list_view_h_stander:
break;
case R.id.list_view_h_reverse:
break;
case R.id.grid_view_v_stander:
break;
case R.id.grid_view_v_reverse:
break;
case R.id.grid_view_h_stander:
break;
case R.id.grid_view_h_reverse:
break;
case R.id.stagger_view_v_stander:
break;
case R.id.stagger_view_v_reverse:
break;
case R.id.stagger_view_h_stander:
break;
case R.id.stagger_view_h_reverse:
break;
}
return super.onOptionsItemSelected(item);
}
}
public class ListViewAdapter extends RecyclerView.Adapter<ListViewAdapter.InnerHolder>{
private final List<ItemBean> mData;
public ListViewAdapter(List<ItemBean>data){
this.mData=data;
}
//创建条目
@Override
public InnerHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//传进去的这个view其实就是条目的界面
//两个步骤
//1.拿到view
//2.创建InnerHolder
View view= View.inflate(parent.getContext(),R.layout.item_list_view,null);
return new InnerHolder(view);
}
//绑定Holder,用来设置数据
@Override
public void onBindViewHolder(InnerHolder holder, int position) {
holder.setData(mData.get(position));
}
@Override
public int getItemCount() {
if(mData!=null){
return mData.size();
}
return 0;
}
public class InnerHolder extends RecyclerView.ViewHolder {
private ImageView mIcon;
private TextView mTitle;
public InnerHolder(View itemView) {
super(itemView);
//找到条目控件
mIcon = (ImageView) itemView.findViewById(R.id.list_view_icon);
mTitle = (TextView) itemView.findViewById(R.id.list_view_title);
}
//这个方法用于设置数据
public void setData(ItemBean itemBean) {
//开始设置数据
mIcon.setImageResource(itemBean.icon);
mTitle.setText(itemBean.title);
}
}
}
public class ItemBean {
public int icon;
public String title;
}
public class Datas {
public static int[] icons = {
R.mipmap.a01,
R.mipmap.a02,
R.mipmap.a03,
R.mipmap.a04,
R.mipmap.a05,
R.mipmap.a06,
R.mipmap.a07,
R.mipmap.a08,
R.mipmap.a09,
R.mipmap.a10};
}
真机运行没有问题,一换模拟器就不行,我也有这个问题的
出现xxxapp has stopped是什么原因?你上log吧,这不一定是你的代码问题吧。有没有崩溃之类的呢。其他的应用也会输出log呀。如果是你的应用崩溃了,看Log就知道了。