タブ内にテキストビューを動的に追加しようとしています。このコードを使用するタブ内にテキストビューを動的に追加する(Android)
このエラーは「ビュー階層を作成した元のスレッドのみがそのビューに触れることができます」というメッセージが表示されます。
お願いします。次のブロック
runOnUiThread(new Runnable() {@Overridepublic void run() {//your code here}}
タブ内にテキストビューを動的に追加しようとしています。このコードを使用するタブ内にテキストビューを動的に追加する(Android)
このエラーは「ビュー階層を作成した元のスレッドのみがそのビューに触れることができます」というメッセージが表示されます。
お願いします。次のブロック
runOnUiThread(new Runnable() {@Overridepublic void run() {//your code here}}
は次のようにハンドラを使用してみてください:
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);
}
}
};
ではなく、他の場所から追加するよりものonCreateメソッドでこれを追加します。
この新しいエラーが発生しました。「指定された子には既に親があります。最初にその子の親に対してremoveView()を呼び出す必要があります。 – Manoharan
textviewを追加する前にlayout.removeAllViews()を使用してください –
すべてのメソッドのコードを追加してください。 – Natali
TabHostまたはその別のXMLを定義したXMLにこのテキストビューを追加しようとしていますか?また、XMLと一緒にコードを追加して、LinearLayoutを追加しようとしてください。 – Hiral