首页 > 解决方案 > 来自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 的建议,但还没有解决。

谢谢!

标签: javaandroidsetcontentview

解决方案


三个提示:

将 Calback 参数添加到您的 AsyncTask。

或者添加一个接口。

或覆盖主要活动中的 onPostExecute。


推荐阅读