如何在应用程序启动时显示ProgressDialog?

时间:2010-06-28 23:10:01

标签: android

aka,这段代码有什么问题: -

package com.mez.appofjaq;

import com.mez.appofjaq.RssParser.RssFeed;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.webkit.WebView;

public class AppOfJaq extends Activity {

    protected static final int REFRESH = 0;

    String streamTitle = "";
    protected ProgressDialog pd;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        pd.show(this, "Loading..", "Loading Feed");
        setContentView(R.layout.main);
        new Thread(new Runnable(){
            public void run() {
                loadFeed();
                pd.dismiss();
            }
        }).start();

    }

    private void loadFeed()
    {
        RssParser rp = new RssParser("http://shotofjaq.org/feed");
        rp.parse();

        RssFeed feed = rp.getFeed();

        if (feed.getItems() != null)
        {
            streamTitle = feed.getItems().get(0).content;
        }
        WebView result = (WebView)findViewById(R.id.result);
        result.loadData(streamTitle, "text/html", "utf-8");
    }

}

3 个答案:

答案 0 :(得分:1)

Macarse和alex都是正确的(并且都缺少信息)。

Macarse的代码是您需要使用它来使其工作的代码。它包含缺少的参数(最后的true以使其成为一个不确定的对话框)并通过调用ProgressDialog.show而不是pd.show来修复Null Pointer Exception(NPE)。

我知道这本身并不是一个答案,但我认为这有助于其他人知道为什么alex和Macarse的答案都是正确的。

最终结果是您应该拥有以下代码,原因如下:

pd = ProgressDialog.show(this, "Loading...", "Loading Feed", true);

或者这个(如果你的字符串使用strings.xml):

pd = ProgressDialog.show(this, getString(R.string.loading_title),
                         getString(R.string.loading_msg), true); 

答案 1 :(得分:0)

我猜你错过了一个参数。

从我的代码:

pd = ProgressDialog.show(this, "", getString(R.string.loading_msg), true);

答案 2 :(得分:0)

您将在pd.show(this, "Loading..", "Loading Feed");

上获得NPE

应该是

pd = ProgressDialog.show(this, "Loading..", "Loading Feed");
正如Macarse所说的那样。