2012-01-27 22 views
0

タブ内にテキストビューを動的に追加しようとしています。このコードを使用するタブ内にテキストビューを動的に追加する(Android)

このエラーは「ビュー階層を作成した元のスレッドのみがそのビューに触れることができます」というメッセージが表示されます。

お願いします。次のブロック

runOnUiThread(new Runnable() {@Overridepublic void run() {//your code here}}

+0

すべてのメソッドのコードを追加してください。 – Natali

+0

TabHostまたはその別のXMLを定義したXMLにこのテキストビューを追加しようとしていますか?また、XMLと一緒にコードを追加して、LinearLayoutを追加しようとしてください。 – Hiral

答えて

0

は次のようにハンドラを使用してみてください:

EDIT:

protected static final int SET_TEXTVIEW = 0; 
Oncreate() 
{ 
    OA.loaderShow(this); //Loader display 
    new Thread(new Runnable(){ 
     public void run() 
     { 
      Looper.prepare(); 
      handler.sendMessage(handler.obtainMessage(SET_TEXTVIEW)); 
      OA.loaderHide(); //Loader Hide 
      Looper.loop(); 
     } 
    }).start(); 
} 
public Handler handler = new Handler() { 
      @Override 
      public void handleMessage(Message msg) { 
       switch (msg.what) { 
       case SET_TEXTVIEW : 
        LinearLayout layout = (LinearLayout) findViewById(R.id.layout); 
        TextView text = new TextView(this); 
        text.setText(mytext); 
        layout.addView(text); 
       } 
      } 
     }; 
+0

もう少し説明できますか?私はこのコードの使い方を知らないのですか? – Manoharan

+0

あなたの投稿を編集しました。あなたの "fetchDocs();" "handler.sendMessage(handler.obtainMessage(SET_TEXTVIEW));"で " 上記のハンドラをクラスに追加します。私は自分の投稿を編集します。 – Prexx

1

ではなく、他の場所から追加するよりものonCreateメソッドでこれを追加します。

+0

この新しいエラーが発生しました。「指定された子には既に親があります。最初にその子の親に対してremoveView()を呼び出す必要があります。 – Manoharan

+0

textviewを追加する前にlayout.removeAllViews()を使用してください –

0

の内側に上記入れ

+0

私はローダーでのみoncreateメソッドでこれを呼び出しています。 – Manoharan

関連する問題