java - 来自Android中不同类的setContentView(R.layout.xy)
问题描述
我根据不同的教程制作了一个应用程序,但有一个主要问题。
通常我在 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 的建议,但还没有解决。
谢谢!
解决方案
三个提示:
将 Calback 参数添加到您的 AsyncTask。
或者添加一个接口。
或覆盖主要活动中的 onPostExecute。
推荐阅读
- python - 如何计算两个 NumPy 数组中不匹配元素的总和
- hive - Hive INSERT 到字符串列四舍五入数字字符串
- c# - .NET Core 2.1 - 实体框架:在添加到数据库之前检查重复项
- sas - 对多个观测值求和变量时的 PROC SUMMMARY 方法的替代方法
- c# - 使用 C# 在 WPF 中创建项目的先决条件
- angular - PrimeNG dataView 搜索框设置问题
- ace-editor - 使用 SyntaxHighlightRules 进行语法验证
- laravel - Guzzle 在 Laravel 中发布 Null/Empty 值
- entity-framework-migrations - 如何访问八达通服务器包内的 sql 脚本?
- java - 您可以将 JPA 配置为在乐观并发中为 @Version 使用 UUID