【发布时间】:2021-04-20 23:24:32
【问题描述】:
我根据不同的教程制作了一款应用,但有一个主要问题。
通常我在 MainActivity.java 类中设置所有布局视图:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutA);
}
public void whenClicked (View view){
setContentView(R.layout.layoutB);
}
// and so on..
}
在 MainActivity.java 的某个时刻,我调用了第二个类,它为我做了一些 mysql 的事情,现在我希望这个类在成功的情况下 setContentView(R.layout.layoutC)。
这是 MainActivity 的部分:
BackgroundWorker backgroundWorker = new BackgroundWorker(this);
backgroundWorker.execute(type, dataA, dataB, dataC, dataD);
这是我要设置 ContentView 的 BackgroundWorker.java 的头:
public class BackgroundWorker extends AsyncTask<String, Void, String> {
Context context;
BackgroundWorker(Context ctx){
context = ctx;
}
@Override
protected String doInBackground(String... params) {
// do some mysql stuff..
}
}
如果有人能提示我如何在我的情况下执行此操作,那就太好了。我尝试了很多来自 stackoverflow 的建议,但都没有成功。
谢谢!
【问题讨论】:
-
你不能这样做......只有同一个组件可能会触及它的视图。恕我直言,整个概念毫无意义,因为通常会从后台线程回调。只需使用 AndroidX 导航组件并导航片段。
AsyncTask也被弃用了。
标签: java android setcontentview