Androidnull 指標的問題。。

來源:互聯網
上載者:User

標籤:android   style   blog   http   color   io   os   ar   java   

============問題描述============


android null 指標搞了二天了,還是沒找到錯誤,知道那裡報null 指標但不知道怎麼改

有空的哥們幫幫忙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"));//擷取傳過來的分類IdcategoryId = 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();}@Overrideprotected 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);      //這行報錯   null 指標// 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() {@Overridepublic 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;}


報錯資訊:

============解決方案1============


你檢查一下activity_gastronomy_list.xml裡有沒有對應的id為expandtab_view的控制項。

============解決方案2============


2樓說的不錯,因為 android 目前的機制是在 findViewById 找不到對應的控制項的時候,會返回 null, 而不是拋出異常,而 Null 可以被強制類型轉換為任意類型.

因此,你需要檢查布局檔案中是否有對應id 的控制項

Androidnull 指標的問題。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.