Динамически добавлять вид текста на вкладке (Android) - PullRequest
0 голосов
/ 27 января 2012

Я пытаюсь добавить текстовое представление внутри вкладки динамически.используя этот код

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);  
}

Я получаю эту ошибку "Только оригинальный поток, создавший иерархию представлений, может касаться его представления".

Пожалуйста, помогите.

Ответы [ 3 ]

1 голос
/ 27 января 2012

Поставьте выше внутри следующего блока

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

0 голосов
/ 27 января 2012

Попробуйте использовать такой обработчик:

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 голосов
/ 27 января 2012

Добавьте это в метод onCreate, а не добавляйте откуда-либо еще.

...