java - 无法让旋转进度条工作

标签 java android progress

无论我如何尝试,我都无法让进度条发挥作用。这是代码:

public void setDayView(final int _day, final int _month, final int _year) {
    ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar);
    progressBar.setVisibility(ProgressBar.VISIBLE);
    comm = new Thread() {

        public void run() {
            final postRequest req = new postRequest(username, password);
            doc = (Document) req.GetDayEvents(_day, _month, _year);
        }
    };
    comm.start();
    while (comm.isAlive()) { // waiting for network to finish

    }
    progressBar.setVisibility(ProgressBar.GONE);
    NodeList eventsTitles = doc.getElementsByTagName("Title");
    NodeList eventsClasses = doc.getElementsByTagName("Class");
    NodeList eventsTypes = doc.getElementsByTagName("Type");
    NodeList eventsComments = doc.getElementsByTagName("Comment");
    NodeList eventsAmounts = doc.getElementsByTagName("Amount");
    NodeList eventsHashes = doc.getElementsByTagName("Hash");
    NodeList refCurrency = doc.getElementsByTagName("RefCurrency");
    NodeList dateStamp = doc.getElementsByTagName("DateStamp");

    final int nrOfEvents = eventsTitles.getLength();
    LinearLayout dayEventsArea = (LinearLayout) findViewById(R.id.DayEventsArea);

    // set SelectedDayLabel
    TextView selDayLabel = (TextView) findViewById(R.id.selectedDayLabel);
    selDayLabel.setText(dateStamp.item(0).getTextContent());
    //

    // set day totals labels
    TextView dayDebit = (TextView) findViewById(R.id.dayDebitLabel);
    TextView dayOutgo = (TextView) findViewById(R.id.dayOutgoLabel);
    TextView dayIncome = (TextView) findViewById(R.id.dayIncomeLabel);
    dayDebit.setText("Debit: "
            + doc.getElementsByTagName("DayDebit").item(0).getTextContent()
            + " " + refCurrency.item(0).getTextContent());
    dayOutgo.setText("Outgo: "
            + doc.getElementsByTagName("DayOutgo").item(0).getTextContent()
            + " " + refCurrency.item(0).getTextContent());
    dayIncome.setText("Income: "
            + doc.getElementsByTagName("DayIncome").item(0)
                    .getTextContent() + " "
            + refCurrency.item(0).getTextContent());
    //
    dayEventsArea.removeAllViews();

    // clearing all local caches
    _eventsTitlesLocalCopy.clear();
    _eventsClassesLocalCopy.clear();
    _eventsAmountsLocalCopy.clear();
    _eventsCommentsLocalCopy.clear();
    _eventsTypesLocalCopy.clear();
    _eventsHashesLocalCopy.clear();
    //
    for (int i = 0; i < eventsTitles.getLength(); i++) {
        // creating a local cache of the day events, as they can be edited
        // and sent back
        _eventsTitlesLocalCopy.add(eventsTitles.item(i).getTextContent());
        _eventsClassesLocalCopy.add(eventsClasses.item(i).getTextContent());
        _eventsAmountsLocalCopy.add(eventsAmounts.item(i).getTextContent());
        _eventsCommentsLocalCopy.add(eventsComments.item(i)
                .getTextContent());
        _eventsTypesLocalCopy.add(eventsTypes.item(i).getTextContent());
        _eventsHashesLocalCopy.add(eventsHashes.item(i).getTextContent());
        //

以及来自layout.xml的代码

<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyleLarge"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminate="true"
    android:layout_gravity="center" />

如果我关闭代码行progressBar.setVisibility(ProgressBar.GONE);然后我的进度条一直显示,所以它确实有效。

最佳答案

我建议使用 AsyncTask为此,而不是您的线程实现(单击链接以获取文档中的清晰示例)。您可以在启动时使进度条可见,并在 onPostExecute 方法中再次隐藏它。我预计你的 while 循环会出现一些问题,这样会干净得多。

关于java - 无法让旋转进度条工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19881821/

相关文章:

terminal - 在 AppleScript 中为 "do shell script"的对话框添加进度条

jQuery 根据百分比淡出图像部分?

java - 如何通过java统计主板插槽数并获取主板序列号?

android - 来自 Android 应用程序的奇怪的 FileNotFoundException 异常

c#-4.0 - 报告一百万次调用流程的进度

安卓磨损 : Starting a service on Handheld

java - 我有一个 Activity ,当用户单击其中的卡片时,它会转到一个 fragment ..并返回到该 Activity 如何销毁该 fragment ?

java - 使用其中的方法传递参数。 java

java - HttpUnit 和 jQuery : EcmaError

java - 在 Tomcat 中部署后来自 servlet 过滤器的 JSP 文件路径