これはおそらく重複とマークされることがわかっていますが、これは私を非常にイライラさせています。私の人生の間、AsyncTaskからテキストビューを変更する方法を理解できません。このコードを実行した後、AsyncTaskからUIを更新できない
@Override
protected void onPostExecute(String result) {
MainActivity ma = new MainActivity();
ma.updateTextView(result);
}
しかし
public void updateTextView(String data){
TextView textview = (TextView)findViewById(R.id.TextView1);
textview.setText(data);
}
、その後、私のAsyncTaskに私が持っているからのTextViewを変更しようとすることを伴う任意の修正:これは私のMainActivityクラスである機能ですAsyncTaskは、私が取得:
のjava.lang.NullPointerException:nullのオブジェクト参照の上 ')android.view.Window $コールバックandroid.view.Window.getCallback(' 仮想メソッドを呼び出そうと
しかし、メインスレッドから同じ正確な関数を呼び出すと、正常に動作します。
ご協力いただければ幸いです。
'MainActivity ma = new MainActivity()' ???新しいアクティビティを作成しようとしていますか? – azizbekian
AsyncTaskが別のクラスなので、[OnPostExecute()の結果をメインアクティビティに取得する方法]の可能な複製?](http://stackoverflow.com/questions/12575068/how-to-get-the-result-of- onpostexecute-to-main-activity-asynctask-is-a) –
MainActivityの新しいインスタンスを作成しないでください!代わりに、AsyncTaskを作成するときにインスタンスをパラメータとして渡し、メソッドを呼び出すために使用します。 –