在选项卡内动态添加文本视图(Android)

在选项卡内动态添加文本视图(Android),android,dynamic,tabs,textview,add,Android,Dynamic,Tabs,Textview,Add,我正在尝试在选项卡中动态添加textview。使用此代码 Oncreate() { OA.loaderShow(this); //Loader display new Thread(new Runnable(){ public void run() { Looper.prepare(); fetchDocs(); OA.loaderHide(); //L

我正在尝试在选项卡中动态添加textview。使用此代码

Oncreate()
{  
    OA.loaderShow(this); //Loader display  
    new Thread(new Runnable(){  
        public void run()
        {  
            Looper.prepare();  
            fetchDocs();  
            OA.loaderHide(); //Loader Hide  
            Looper.loop();  
        }  
    }).start();  
}  

fetchDocs()
{  
    LinearLayout layout = (LinearLayout) findViewById(R.id.layout);    
    TextView text = new TextView(this);              
    text.setText(mytext);        
    layout.addView(text);  
}
我得到这个错误“只有创建视图层次结构的原始线程才能接触它的视图”


请帮助。

将上面的内容放在下面的块中


runOnUiThread(new Runnable(){@Overridepublic void run(){//your code here}}}
将此添加到onCreate方法中,而不是从其他地方添加。

尝试使用如下处理程序:

编辑:


请添加all方法代码。是否尝试将此textview添加到定义TabHost的xml中,或添加到另一个xml中?请将更多代码与尝试添加LinearLayout的xml一起发布。我收到此新错误“指定的子项已具有父项。必须先对子项的父项调用removeView()在添加TEXTVIEW之前使用layout.removeAllViews()。我只在oncreate方法中使用loader调用它。你能解释一下吗。我不知道如何使用这段代码?好的,你编辑了你的帖子。用“handler.sendMessage(handler.GetainMessage(SET_TEXTVIEW));”替换你的“fetchDocs();”将上面显示的处理程序添加到你的类中。我将编辑我的帖子。
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);
                }
            }
        };