0

postexecute の else if (message.equals("holiday")) ステートメントにコメントしないと、私のコードはクラッシュします この行 (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

messageアプリが初めて実行されるnullときなので、 if-else ステートメントが に達すると、代わりにelse if (message.equals("holiday")スローされ、アプリがクラッシュします。NullPointerExceptionfalse

SO: Java null String equals resultを参照してください。

message代わりに、空の文字列で初期化することを検討してください。(つまりmessage = "";)。

また

チェックの順序を に変更しelse if ("holiday".equals(message))ます。

于 2013-11-02T10:31:06.587 に答える