0
最初我的应用程序显示5个相对布局。如果您单击相对布局,则加载线性布局;此时我想显示进度条。进度条问题
我用进度条下面的代码,但我得到异常 >android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
我如何处理呢?
代码
private OnClickListener exit1Listener = new OnClickListener()
{
public void onClick(View v)
{
if(!exit1status)
{
System.out.println("exit1 visible");
// Exit1 Restaurants
if(RB_Constant.upcomingexits_obj.response.size() > 0)
{ i if(RB_Constant.upcomingexits_obj.response.get(0).listRestaurants.size() > 0)
{
//YRS: listview1.setAdapter(new UpcomingResultsListViewAdapter1(this));
// Create the views on the fly instead of using the ListView
rbupcadapter1 = new UpcomingResultsListViewAdapter1(RB_UpcomingExits.this);
if(RB_Constant.upcomingexits_obj.response.get(0).listRestaurants.size() > 0)
{
numItems1 = RB_Constant.upcomingexits_obj.response.get(0).listRestaurants.size();
}
Exitexpand_pd = ProgressDialog.show(RB_UpcomingExits.this, "", "Please wait...", true);
Thread t = new Thread()
{
public void run()
{
try
{
for(position=0; position < numItems1; position++)
{
View convertview = null;
convertview = rbupcadapter1.getView(position, convertview, null); listLayout1.addView(convertview);
}
}
catch(Exception e)
{ System.out.println("Exit1Listener error ->"+e.toString());
} rb_Exitexpand_Handler.post(null);
Exitexpand_pd.dismiss();
}
};
t.start();
//listview1.setMinimumHeight(2000);
}
}
else{
//toastMsg("No results!");
}
listLayout1.setVisibility(View.VISIBLE);
exit1status = true;
if(exit2status || exit3status || exit4status || exit5status)
{
//System.out.println("exit2 GONE");
listLayout2.setVisibility(View.GONE);
listLayout3.setVisibility(View.GONE);
listLayout4.setVisibility(View.GONE);
listLayout5.setVisibility(View.GONE);
}
}
else
{
System.out.println("exit1 GONE");
listLayout1.setVisibility(View.GONE);
exit1status = false;
}
}
};
这里我使用这个处理程序的代码rb_Exitexpand_Handler.post(null); – naresh
这意味着我在这里调用其他视图,然后添加到线程内的线性布局。我想你说过这是问题。 – naresh
如何实现处理程序对象? – naresh