我正在尝试通过AsyncTask更改Activity的布局。
在onPostExecute()中我正在调用:
select * from tablename
where col1 in (
select col1 from
tablename
group by col1
having count(distinct col2) >= 2)
但它不会让我说,“MyActivity不是一个封闭的阶级”。
有人可以帮忙吗?
答案 0 :(得分: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);
}
}
答案 1 :(得分:0)
我认为这是在rutime中更改活动布局的错误方法。如果您想要显示另一个布局的屏幕,您应该使用片段或创建另一个活动并在那里设置您的布局。
答案 2 :(得分: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);
}
}
}