又名,这段代码有什么问题:-
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");
}
}
最佳答案
Macarse 和 alex 都是正确的(并且都缺少信息)。
Macarse 的代码是您需要用来让它工作的代码。它包括缺少的参数(末尾的 true
使其成为一个不确定的对话框)并通过调用 ProgressDialog.show 而不是 pd.show 修复了空指针异常 (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);
关于android - 如何让 ProgressDialog 在应用程序启动时显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3136794/