============问题描述============
android空指针搞了二天了,还是没找到错误,知道那里报空指针但不知道怎么改
有空的哥们帮帮忙qq517835354
报错代码:
GastronomyList.class:
/**
*一切为了测试
*/
privateExpandTabViewexpandTabView;
privateArrayListmViewArray=newArrayList();
privateViewMiddleviewMiddle;
privatevoidinit(){
tv_menu1=(TextView)findViewById(R.id.tv_menu1);
tv_menu2=(TextView)findViewById(R.id.tv_menu2);
tv_menu2.setVisibility(View.GONE);
tv_menu3=(TextView)findViewById(R.id.tv_menu3);
tv_menu1.setText(getIntent().getStringExtra("menu"));
//获取传过来的分类Id
categoryId=getIntent().getStringExtra("id");
tv_menu1.setOnClickListener(this);
//tv_menu2.setOnClickListener(this);
tv_menu3.setOnClickListener(this);
Viewview=LayoutInflater.from(context).inflate(R.layout.bottom_bar,null);
lv_list=(ListView)findViewById(R.id.lv_list_ms);
list_list=newArrayList>();
list_data3=newArrayList>();
for(inti=0;i
HashMapmap=newHashMap();
map.put("name",orderNames[i]);
map.put("dictate",orderDictates[i]);
list_data3.add(map);
}
width=getWindowManager().getDefaultDisplay().getWidth();
}
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gastronomy_list);
init();
initView();
initVaule();
initListener();
//getProductCategoryList(categoryId);
getFLLsit();
getDictList();
getProductList(categoryId,busiareaId,order,pageNo*BASE,(pageNo+1)*BASE);
}
/**
*一切为了测试
*@param唉命苦
*/
privatevoidinitView(){
expandTabView=(ExpandTabView)findViewById(R.id.expandtab_view);
//viewLeft=newViewLeft(this);
//getProductCategoryList("");
viewMiddle=newViewMiddle(this);
//viewRight=newViewRight(this);
}
privatevoidinitVaule(){
//mViewArray.add(viewLeft);
mViewArray.add(viewMiddle);
//mViewArray.add(viewRight);
ArrayListmTextArray=newArrayList();
//mTextArray.add("距离");
mTextArray.add("美食");
if(mViewArray!=null){
Log.i("什么玩意",""+mViewArray.size());
}else{
Log.i("什么玩意","呵呵");
}
//mTextArray.add("距离");
expandTabView.setValue(mTextArray,mViewArray);//这行报错空指针
//expandTabView.setTitle(viewLeft.getShowText(),0);
//expandTabView.setTitle(viewMiddle.getShowText(),1);
//expandTabView.setTitle(viewRight.getShowText(),2);
}
privatevoidinitListener(){
//viewLeft.setOnSelectListener(newViewLeft.OnSelectListener(){
//
//@Override
//publicvoidgetValue(Stringdistance,StringshowText){
//onRefresh(viewLeft,showText);
//}
//});
viewMiddle.setOnSelectListener(newViewMiddle.OnSelectListener(){
@Override
publicvoidgetValue(StringshowText){
onRefresh(viewMiddle,showText);
}
});
//viewRight.setOnSelectListener(newViewRight.OnSelectListener(){
//@Override
//publicvoidgetValue(Stringdistance,StringshowText){
//onRefresh(viewRight,showText);
//}
//});
}
privatevoidonRefresh(Viewview,StringshowText){
expandTabView.onPressBack();
intposition=getPositon(view);
if(position>=0&&!expandTabView.getTitle(position).equals(showText)){
expandTabView.setTitle(showText,position);
}
Toast.makeText(getApplicationContext(),showText,Toast.LENGTH_SHORT).show();
}
privateintgetPositon(ViewtView){
for(inti=0;i
if(mViewArray.get(i)==tView){
returni;
}
}
return-1;
}
报错信息:
============解决方案1============
你检查一下activity_gastronomy_list.xml里有没有对应的id为expandtab_view的控件。
============解决方案2============
2楼说的不错,因为android目前的机制是在findViewById找不到对应的控件的时候,会返回null,而不是抛出异常,而Null可以被强制类型转换为任意类型.
因此,你需要检查布局文件中是否有对应id的控件