-1

我正在尝试通过 AsyncTask 更改我的 Activity 的布局。

在 onPostExecute() 我打电话:

MyActivity.this.setContentView(R.layout.activity_sub);

但它不会让我说“MyActivity 不是封闭类”。

有人可以帮忙吗?

4

3 回答 3

0

我认为这是在 rutime 中更改活动布局的错误方法。如果您想显示具有另一种布局的屏幕,您应该使用片段或创建另一个活动并在那里设置您的布局。

于 2015-10-01T11:59:06.170 回答
0

不应该需要'MyActivity.this。';以下对我有用:

public class MyAsyncTask extends AsyncTask<Void, Void, Integer> {

    @Override
    protected Integer doInBackground(Void... params) {
        return R.layout.activity_home;
    }

    @Override
    protected void onPostExecute(Integer result) {
        super.onPostExecute(result);

        setContentView(result);
    }
}
于 2015-10-01T11:53:11.023 回答
0

如果您将AsyncTask类嵌入为活动的内部类,它应该可以工作。

public class MyActivity extends Activity {
    ...
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    ...
    public class MyAsyncTask extends AsyncTask<Void, Void, ...> {

        @Override
        protected ... doInBackground(Void... params) {
            ...
        }

        @Override
        protected void onPostExecute(... result) {
            super.onPostExecute(result);
            setContentView(R.layout.activity_sub);
        }
    }

}
于 2015-10-01T12:12:31.823 回答