1

私が使用しているコード

public class DemoAsynTask extends AsyncTask{
@Override
 protected void onPreExecute(){      
     try{           

         MainActivity myActivity = new MainActivity();
         myActivity.super.onCreate(savedInstanceState);
         myActivity.setContentView(R.layout.activity_main);

         EditText txtInformation = (EditText) myActivity.findViewById(R.id.txtInformation);
     txtInformation.setText("TESTING");
     }catch(Exception ex){
        ex.printStackTrace(); 
     }
}
    @Override
    protected Object doInBackground(Object... params) {
        // TODO Auto-generated method stub
        return null;
    }
}

DemoAsynTask クラスは内部にありません。例が機能しているのを見てきましたが、MainActivity 内のクラスです。

public class MainActivity extends activity{
   public class DemoAsynTask extends AsyncTask{
   }
}

DemoAsynTask クラスは個別のファイルであり、個別に呼び出したいのですが、null ポインター例外があります。

public class MainActivity extends activity{
}
public class DemoAsynTask extends AsyncTask{
}

エラー ログ java.lang.NullPointerException

4

1 に答える 1

1

MainActivityを作成し(MainActivityをインスタンス化する必要はなく、アクティビティのライフサイクルごとにインスタンス化できます)、DemoAsyncTaskを別のクラスまたはMainActivityの内部クラスとして取得します。onPreExecute()でステータス「TESTING」を設定し、onPostExecute()でdoInBackground()で取得した結果に従ってステータスを変更します。

于 2012-11-30T04:44:58.207 に答える