2011-07-06 11 views
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; 
     } 

    } 
}; 

答えて

0

あなたはUI(ビュー)UIスレッド以外のスレッドからのオブジェクトを更新することはできません、Handlerオブジェクトを使用するようにしてください。

+0

ここでは、このハンドラをコードrb_Exitexpand_Handler.post(null)で使用しています。 – naresh

+0

ここで私は他のビューを呼び出していて、スレッド内の線形レイアウトに追加しています。私はあなたがこれが問題だと言ったと思います。 – naresh

+0

ハンドラオブジェクトの実装方法は? – naresh

関連する問題