android布局和progressbar的问题
我仍在开发我的应用程序,它必须在本地存储RSS数据。 到目前为止,我设法创建了一个本地数据库并解析了在线RSS提要。 我还设法将这些信息放入数据库中,因此现在该应用程序在脱机时也可以使用 然而,我似乎不知道如何做到以下几点: 我有两个按钮,其中一个读取数据库标题,并将转到您选择的详细页面(仍在进行此操作) 我目前的问题是,当应用程序从互联网下载数据时,我似乎无法添加一个加载条在屏幕上弹出。屏幕上只有10秒钟的空白,然后列表就会弹出。以下是我正在使用的代码: 公共类SynchDB_活动扩展了ListActivity{android布局和progressbar的问题,android,rss,progress-bar,Android,Rss,Progress Bar,我仍在开发我的应用程序,它必须在本地存储RSS数据。 到目前为止,我设法创建了一个本地数据库并解析了在线RSS提要。 我还设法将这些信息放入数据库中,因此现在该应用程序在脱机时也可以使用 然而,我似乎不知道如何做到以下几点: 我有两个按钮,其中一个读取数据库标题,并将转到您选择的详细页面(仍在进行此操作) 我目前的问题是,当应用程序从互联网下载数据时,我似乎无法添加一个加载条在屏幕上弹出。屏幕上只有10秒钟的空白,然后列表就会弹出。以下是我正在使用的代码: 公共类SynchDB_活动扩展了Lis
public List<Message> messages;
public List<String> titles;
//ProgressDialog dialog = ProgressDialog.show(SynchDB_Activity.this, "", "Downloading data...", true);
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.animal_list_view);
loadFeed();
}
private void loadFeed(){
try{
BaseFeedParser parser = new BaseFeedParser();
messages = parser.parse();
List<String> titles = new ArrayList<String>(messages.size());
DBAdapter db = new DBAdapter(this);
for (Message msg : messages){
titles.add(msg.getTitle());
db.addRow(
msg.getTitle(),
msg.getDescription(),
"bla",
"http:/",
msg.getLink());
}
//dialog.dismiss();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row,titles);
this.setListAdapter(adapter);
} catch (Throwable t){
Log.e("AndroidNews",t.getMessage(),t);
}
}
公共列表消息;
公开名单名称;
//ProgressDialog=ProgressDialog.show(SynchDB_Activity.this,“,“下载数据…”,true);
@凌驾
创建公共空间(捆绑冰柱){
超级冰柱;
setContentView(右布局、动物列表视图);
loadFeed();
}
私有void loadFeed(){
试一试{
BaseFeedParser=新的BaseFeedParser();
messages=parser.parse();
列表标题=新的ArrayList(messages.size());
DBAdapter db=新的DBAdapter(此);
用于(消息消息:消息){
titles.add(msg.getTitle());
db.addRow(
msg.getTitle(),
msg.getDescription(),
“布拉”,
“http:/”,
msg.getLink());
}
//dialog.dismise();
ArrayAdapter=新的ArrayAdapter(此,R.layout.row,标题);
这个.setListAdapter(适配器);
}捕获(可丢弃的t){
Log.e(“AndroidNews”,t.getMessage(),t);
}
}
所以这段代码可以工作并将所有数据放在本地数据库中。但是我就是不能让加载条工作,这让我发疯
如果有人能帮我,我将不胜感激!!!
我已经在谷歌上搜索了一整天,但似乎什么都没用
非常感谢
编辑:正如你在代码中看到的,当列表完成时,我会显示列表。这不是必需的,但从我删除ArrayAdapter的那一刻起,应用程序将不再工作
请记住,这一切对我来说都是全新的,我认为出现问题的主要部分是使用不同的布局…您可能想要使用。使用异步任务和进度条,如下所示:
public void getrss()
{
try{
class test extends AsyncTask{
TextView tv_per;
int mprogress;
Dialog UpdateDialog = new Dialog(ClassContext);
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
mprogress = 0;
UpdateDialog.setTitle(getResources().getString(R.string.app_name));
UpdateDialog.setContentView(R.layout.horizontalprogressdialog);
TextView dialog_message = (TextView)UpdateDialog.findViewById(R.id.titleTvLeft);
tv_per = (TextView)UpdateDialog.findViewById(R.id.hpd_tv_percentage);
dialog_message.setText(getResources().getString(R.string.dialog_retrieving_data));
dialog_message.setGravity(Gravity.RIGHT);
UpdateDialog.setCancelable(false);
UpdateDialog.show();
super.onPreExecute();
}
@Override
protected void onProgressUpdate(Object... values) {
// TODO Auto-generated method stub
ProgressBar update = (ProgressBar)UpdateDialog.findViewById(R.id.horizontalProgressBar);
update.setProgress((Integer) values[0]);
int percent = (Integer) values[0];
if(percent>=100)
{
percent=100;
}
tv_per = (TextView)UpdateDialog.findViewById(R.id.hpd_tv_percentage);
tv_per.setText(""+percent);
}
@Override
protected Object doInBackground(Object... params) {
// TODO Auto-generated method stub
//your code
}
super.onPostExecute(result);
UpdateDialog.dismiss();
}
}
new test().execute(null);
}
catch(Exception e)
{
e.printStackTrace();
}
}
感谢您的回复,但是我不确定如何实现您给我的代码视图应该如何工作?另外,我在“ClassContext”上遇到了一个错误,以及关于正确使用标记“{”“}”的一些错误你有没有可能发布intire项目?这会让我更容易理解我做错了什么。谢谢你突出显示你出错的行?你想要updatedialog的布局文件吗?嘿,我尝试了你的一些代码,最终我找到了答案,非常感谢你的快速回复!