gpt4 book ai didi

android - 水平进度条不更新其状态

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:52:21 27 4
gpt4 key购买 nike

我正在尝试像这样在我的 Activity 中显示水平进度条“Not ProgressDialogenter image description here

这是我的 xml 文件包含的内容

<ProgressBar
android:id="@+id/pdialog"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
/>

我正在尝试通过设置 pdialog.setProgress() 使用 AsyncTask 类更新其状态,但它没有显示任何进度,它适用于 progressdialog 但不适用于水平进度条。

public class MainActivity extends Activity {

private SQLiteDatabase db;
private Cursor cursor;
private ProgressBar pdialog;
private ImageButton btn;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.start);
btn = (ImageButton) findViewById(R.id.startbtn);
pbar = (ProgressBar) findViewById(R.id.progressBar1);
pdialog = (ProgressBar) findViewById(R.id.pdialog);
pdialog.setMax(100);
pdialog.setProgress(20);
btn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

pdialog.setVisibility(View.VISIBLE);
new DownloadFilesTask().execute();

}
});
}

private class DownloadFilesTask extends AsyncTask<Void, Integer, Integer> {

int load = 1;

protected Integer doInBackground(Void... params) {

try {
load = 10 * i;
MainActivity.this.runOnUiThread(new Runnable() {

@Override
public void run() {
pdialog.setProgress(load);
}
});

}

} catch (Exception e) {

}

}

protected void onProgressUpdate(Integer... progress) {

if (progress[0] == 100) {
pdialog.setVisibility(View.INVISIBLE);

}
}

protected void onPostExecute(Integer params) {

}

}
}

最佳答案

如果 load 变量被正确更改:

取而代之的是:

MainActivity.this.runOnUiThread(new Runnable() {

@Override
public void run() {
pdialog.setProgress(load);
}
});

你可以使用:

publishProgress(load);

它会自动调用 UI 线程:

protected void onProgressUpdate(Integer... progress) {
int p = progress[0];
if (p >= 100) {
pdialog.setVisibility(View.INVISIBLE);
}else{
pdialog.setProgress(p);
}
}

更新:

删除 android:indeterminate="true" 正如其他答案中指出的那样。

关于android - 水平进度条不更新其状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15264769/

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