我有一个奇怪的问题,正在创建一个对话框,并呼吁“秀()”,但不是在我的活动可见......ProgressDialog没有显示出来,尽管显示()被调用
的东西是它通过调用“作秀”,我已经看到了它在调试器,但没有...
这里是代码:
protected void initializeSpinners() {
spnPlayLists = (Spinner) findViewById(R.id.spnLists);
spnProviders = (Spinner) findViewById(R.id.spnProvider);
spnProviders.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> _spinner, View _parent,
int _pos, long _id) {
if (_spinner == spnProviders) {
String[] playListsId = core.getAllPlayListsFrom(_pos);
int items = playListsId.length;
**showProgressDialog(items);**
String[] playListsNames = new String[items];
String[] playListsThumbs = new String[items];
playLists = new PlayList[items];
for (int i = 0; i < items; i++) {
String id = playListsId[i];
PlayList playList = core.getPlayList(id, true);
playLists[i] = playList;
playListsNames[i] = playList.title;
playListsThumbs[i] = playList.thumb;
handle.sendEmptyMessage(i);
}
loadPlayLists(playListsNames, playListsThumbs);
myPd_bar.dismiss();
}
}
@Override
public void onNothingSelected(AdapterView<?> _arg0) {
}
});
ProvidersArrayAdapter providersAdapter = new ProvidersArrayAdapter(this);
spnProviders.setAdapter(providersAdapter);
}
和函数调用:
private void showProgressDialog(int _items) {
handle = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
myPd_bar.setProgress(msg.what + 1);
}
};
myPd_bar = new ProgressDialog(Intro.this);
myPd_bar.setMessage("Loading....");
myPd_bar.setTitle("Please Wait..");
myPd_bar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
myPd_bar.setProgress(0);
myPd_bar.setMax(_items);
**myPd_bar.show();**
}
我在做什么坏事?
我不知道太多关于ProgressDialog但也许尝试'myPd_bar.create ().show();'。不知道在这里是否需要'.create()'... – TronicZomB 2013-04-23 20:14:14
甚至不允许! :)无论如何感谢 – Nhano 2013-04-24 17:25:08
好吧,我也发现这个早上''.show()'将创建对话框并显示在一个!所以在这个例子中'.create()'是没有必要的。我曾经使用过的对话框的方式我从来没有遇到过,仅仅使用.show()没有.create会更好,所以我从来不知道这一点。 – TronicZomB 2013-04-24 17:29:40