0

如果我在 postexecute 上不评论语句 else if (message.equals("holiday")) 我的代码会崩溃 告诉我为什么如果不是 euqal 这条线 (message.equals("holiday")) 为什么不打印“学校”今天休息。原因:如果我评论 else if (message.equals("holiday")) 这个代码应用程序工作正常请检查我的 if else 语句

          String message;

        public class getDataTask extends AsyncTask<Void, Void, Void> {

    getDataTask() {

    }

    @Override
    protected void onPreExecute() {
        // TODO Auto-generated method stub
         yourBoolean=false;
    }

    @Override
    protected Void doInBackground(Void... arg0) {
        // TODO Auto-generated method stub

        displayData();
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        // TODO Auto-generated method stub
        yourBoolean=true ;

        if ((Category_ID.size() > 0) ) {



                            listCategory.setAdapter(cla);
                            cla.notifyDataSetChanged() ;
                            listCategory.invalidateViews();
                            menu_nametxt.setText(mVal2);

                        }





else if (message.equals("holiday")) 
{
    menu_nametxt.setText("No menu available .");
    listCategory.setVisibility(View.GONE);
}   
        else
        menu_nametxt.setText("School is off today. Reason: "+mVal3);
    listCategory.setVisibility(View.GONE);

             }


                   private void displayData() {



        Cursor mCursor3 =  db.selectQuery("SELECT * FROM uss_vacation WHERE calendar_id);


    if (mCursor3.moveToFirst()) {
        do {


       Vacation_Date.add(mCursor3.getString(mCursor3.getColumnIndex("date")));

      if(mCursor3.getString(mCursor3.getColumnIndex("date")).equals(mydate))
    {
    message = "holiday";
           String  mVal  ;
    mVal = (mCursor3.getString(mCursor3.getColumnIndex("title")));

    mVal2 = mVal.toString();


    mCursor3.close();
    return;

    }


        } while (mCursor3.moveToNext());
    }

          mCursor3.close();
             }




              if i comment this code application print "School is off today. Reason: text


            else if (message.equals("holiday")) 
 // {
 //     menu_nametxt.setText("No menu available .");
 //     listCategory.setVisibility(View.GONE);
 // }   
4

1 回答 1

0

由于messagenull应用程序第一次运行时,当 if-else 语句到达else if (message.equals("holiday")时,它将抛出NullPointerException而不是false使应用程序崩溃。

请参阅SO:Java null String 等于结果

message考虑用空字符串初始化。(即message = "";)。

或者

将检查顺序更改为else if ("holiday".equals(message))

于 2013-11-02T10:31:06.587 回答