gpt4 book ai didi

Android 不会显示布局

转载 作者:行者123 更新时间:2023-11-29 14:41:45 25 4
gpt4 key购买 nike

我最近发现,由于我的应用从几个 URL 中提取了如此多的数据,因此加载主布局大约需要 3-7 秒。因此,我制作了一个名为“正在加载”的布局来显示,它只是一个简单的 TextView,上面写着“正在收集数据时请稍候...”。但是,当我运行我的应用程序时,它不会显示“正在加载”布局。它只是变黑了一会儿,就像以前一样,然后转到主布局。我也尝试清理项目,但它仍然这样做。这是我的 Main.java 的一部分:

@Override
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.loading);
populateArray();
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// Set up click listeners for all buttons
View v1 = findViewById(R.id.continueButton);
v1.setOnClickListener(this);

View v2 = findViewById(R.id.colorCheck);
v2.setOnClickListener(this);

View v3 = findViewById(R.id.terms);
v3.setOnClickListener(this);
}

populateArray(); 是提取互联网所有信息的方法。所以,我想,“为什么不告诉它立即将内容 View 设置为‘正在加载’,让它运行 populateArray();,然后显示主布局?”显然,我一定在这里遗漏了一些东西。有什么想法吗?

============================================= ===========================

编辑:我尝试使用 AsyncTask,但我正在强制关闭。我还收到一条警告,说从未使用过 AsyncTask 类。这是我的代码:

附言ProgressDialog dialog; 是一个全局定义。

    @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dialog = ProgressDialog.show(this, "",
"Please wait while data is collected...", true);

// Set up click listeners for all buttons
View v1 = findViewById(R.id.continueButton);
v1.setOnClickListener(this);

View v2 = findViewById(R.id.colorCheck);
v2.setOnClickListener(this);

View v3 = findViewById(R.id.terms);
v3.setOnClickListener(this);
}

还有……

    private class LoadData extends AsyncTask <String[][], String, String> {
@Override
protected String doInBackground(String[][]... voidThisArray) {
String voidThisString = null;
populateArray();
return voidThisString;
}

@Override
protected void onPostExecute(String voidThisString) {
setContentView(R.layout.main);
dialog.dismiss();
}

}

我会给你强制关闭的 LogCat,但由于某种原因,LogCat 没有显示任何内容......

最佳答案

您想使用 an AsyncTask首先:创建一个 ProgressDialog这将显示加载消息。然后 AsyncTask 将在后台收集所有数据。

希望对您有所帮助。

private class Task extends AsyncTask<Void,Integer, Void> {
private ProgressDialog dia;

@Override protected void onPreExecute() {
dia = new ProgressDialog(MyContext.this);
dia.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dia.setMessage("Loading. Please wait...");
dia.setCancelable(false);
dia.show();

// Set up preserver download stuff
}

@Override protected Void doInBackground(Void... voids) {
// perform server download stuff
}

@Override public void onProgressUpdate(Integer... prog) {
if (prog == null)
return;
dia.setProgress(prog[0]);
}

@Override protected void onPostExecute(Void voids) {
// Do any post op stuff
dia.cancel();
}
}

关于Android 不会显示布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7193193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com