【问题标题】:Add text view dynamically inside a tab (Android)在选项卡内动态添加文本视图(Android)
【发布时间】:2012-01-27 10:56:14
【问题描述】:

我正在尝试在选项卡中动态添加一个文本视图。使用此代码

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

我收到此错误“只有创建视图层次结构的原始线程才能触摸其视图”。

请帮忙。

【问题讨论】:

  • 请添加所有方法代码。
  • 您是否尝试将此文本视图添加到您定义 TabHost 或其不同 xml 的 xml 中?请发布更多代码以及您尝试添加 LinearLayout 的 xml。跨度>

标签: android dynamic tabs textview add


【解决方案1】:

把上面放在下面的块里面

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

【讨论】:

  • 我收到这个新错误“指定的孩子已经有一个父母。您必须先在孩子的父母上调用 removeView()。”
  • 在添加 textview 之前使用 layout.removeAllViews()
【解决方案2】:

尝试使用这样的处理程序:

编辑:

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

【讨论】:

  • 你能解释一下吗。我不知道如何使用此代码?
  • 好的,你编辑了你的帖子..替换你的“fetchDocs();”用“handler.sendMessage(handler.obtainMessage(SET_TEXTVIEW));”将上面显示的处理程序添加到您的类中。我将编辑我的帖子。
【解决方案3】:

在 onCreate 方法中添加这个而不是从其他地方添加。

【讨论】:

  • 我在 oncreate 方法中仅使用加载器调用它。
猜你喜欢
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2017-09-12
  • 1970-01-01
  • 2012-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多