AsyncTask onPostExecute出错

时间:2015-07-19 16:41:06

标签: java android android-asynctask

我试图在TextView上设置文本,我在手机上收到错误,在LogCat中我获得的是标签:androidruntime,text:at com.examp ... onPostExecute(AsyncSomething.java) 。 这是我的伪代码:

    TextView display_car_tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        display_name_tv = (TextView) findViewById(R.id.display_name_tv);
.....
     setContentView(R.layout...);
}

我有一个仅影响方法的按钮:

new AsyncSomething(this,display_car_tv).execute();

AsyncSomething的代码:

private Context context;
    private TextView tv;
    public AsyncSomethin(Context context, TextView tv){
        this.context=context;
        this.tv=tv;
    }

    protected String doInBackground(String...arg0){
            //some code that works
            return sb.toString();
    }

    protected void onPreExecute() {}
    @Override
    protected void onPostExecute(String result){
        this.tv.append(result);
    }

我做错了什么? 如何从LogCat获取更多信息?

PS:很抱歉没有提供整个代码,但这不相关。

1 个答案:

答案 0 :(得分:2)

从您发布的代码中我发现的唯一错误,可能导致您的应用程序因NullPointerException而崩溃,是您在findViewById之前使用setContentView。您必须在每setContentView之前致电findViewById,否则您将无法找到任何小工具