Android空指针的问题。。

嘟嘟噜嘟嘟 2014-10-07 12:26:51
android 空指针搞了二天了,还是没找到错误,知道那里报空指针但不知道怎么改

有空的哥们帮帮忙qq517835354


报错代码:


GastronomyList.class:
/**
* 一切为了测试
*/
private ExpandTabView expandTabView;
private ArrayList<View> mViewArray = new ArrayList<View>();
private ViewMiddle viewMiddle;



private void init(){

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);

View view = LayoutInflater.from(context).inflate(R.layout.bottom_bar, null);


lv_list = (ListView)findViewById(R.id.lv_list_ms);


list_list = new ArrayList<HashMap<String,String>>();



list_data3 = new ArrayList<HashMap<String,String>>();
for(int i=0;i<orderNames.length;i++){
HashMap<String,String> map = new HashMap<String, String>();
map.put("name", orderNames[i]);
map.put("dictate", orderDictates[i]);
list_data3.add(map);

}

width = getWindowManager().getDefaultDisplay().getWidth();

}

@Override
protected void onCreate(Bundle savedInstanceState) {
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 唉 命苦
*/
private void initView() {

expandTabView = (ExpandTabView) findViewById(R.id.expandtab_view);
// viewLeft = new ViewLeft(this);
// getProductCategoryList("");
viewMiddle = new ViewMiddle(this);
// viewRight = new ViewRight(this);

}


private void initVaule() {

// mViewArray.add(viewLeft);
mViewArray.add(viewMiddle);
// mViewArray.add(viewRight);
ArrayList<String> mTextArray = new ArrayList<String>();
// 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);

}

private void initListener() {

// viewLeft.setOnSelectListener(new ViewLeft.OnSelectListener() {
//
// @Override
// public void getValue(String distance, String showText) {
// onRefresh(viewLeft, showText);
// }
// });

viewMiddle.setOnSelectListener(new ViewMiddle.OnSelectListener() {

@Override
public void getValue(String showText) {

onRefresh(viewMiddle, showText);

}
});

// viewRight.setOnSelectListener(new ViewRight.OnSelectListener() {
// @Override
// public void getValue(String distance, String showText) {
// onRefresh(viewRight, showText);
// }
// });

}

private void onRefresh(View view, String showText) {

expandTabView.onPressBack();
int position = getPositon(view);
if (position >= 0 && !expandTabView.getTitle(position).equals(showText)) {
expandTabView.setTitle(showText, position);
}
Toast.makeText(getApplicationContext(), showText, Toast.LENGTH_SHORT).show();

}

private int getPositon(View tView) {
for (int i = 0; i < mViewArray.size(); i++) {
if (mViewArray.get(i) == tView) {
return i;
}
}
return -1;
}


报错信息:
...全文
168 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
svenwang 2014-10-07
  • 打赏
  • 举报
回复
你检查一下activity_gastronomy_list.xml里有没有对应的id为expandtab_view的控件。
Kenney_Qin 2014-10-07
  • 打赏
  • 举报
回复
你贴的代码的行号和logcat中的行号对应不上~没法看哪一行报了空指针哟
Kifile 2014-10-07
  • 打赏
  • 举报
回复
2楼说的不错,因为 android 目前的机制是在 findViewById 找不到对应的控件的时候,会返回 null, 而不是抛出异常,而 Null 可以被强制类型转换为任意类型. 因此,你需要检查布局文件中是否有对应id 的控件
嘟嘟噜嘟嘟 2014-10-07
  • 打赏
  • 举报
回复
感谢一楼的精彩解答 的确是你说的这个问题 谢谢了~~~

80,361

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧