在onPostExecute的AsyncTask中,textview值未设置

时间:2016-07-22 12:05:29

标签: java android android-asynctask textview

Textview值因空指针异常而崩溃 以下是我正在使用的代码。代码中是否有任何问题。

 public class MainActivity extends Activity {
 Button btn;
 int i =0;
 SharedPreferences.Editor preferences;
 TextView txt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn = (Button)findViewById(R.id.button1);
    preferences = PreferenceManager.getDefaultSharedPreferences(MainActivity.this).edit();
    txt = (TextView) findViewById(R.id.textView1);
    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

             new LongOperation().execute("");
        }
    });

}

    private class LongOperation extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... params) {
            for (int i = 0; i < 5; i++) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    Thread.interrupted();
                }
            }
            return "Executed";
        }

        @Override
        protected void onPostExecute(String result) {

            txt.setText("Executed -----------------------    ");
        }

        @Override
        protected void onPreExecute() {}

        @Override
        protected void onProgressUpdate(Void... values) {}
    }

}

来到onPostExecute之后,textview值没有设置值。 请帮我。提前谢谢。

1 个答案:

答案 0 :(得分:1)

未设置Textview值,因为id的值可能为null。检查一下。