我正在尝试通过 AsyncTask 更改我的 Activity 的布局。
在 onPostExecute() 我打电话:
MyActivity.this.setContentView(R.layout.activity_sub);
但它不会让我说“MyActivity 不是封闭类”。
有人可以帮忙吗?
我正在尝试通过 AsyncTask 更改我的 Activity 的布局。
在 onPostExecute() 我打电话:
MyActivity.this.setContentView(R.layout.activity_sub);
但它不会让我说“MyActivity 不是封闭类”。
有人可以帮忙吗?
我认为这是在 rutime 中更改活动布局的错误方法。如果您想显示具有另一种布局的屏幕,您应该使用片段或创建另一个活动并在那里设置您的布局。
不应该需要'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);
}
}
如果您将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);
}
}
}