Java android-线程-在线程中创建按钮

Java android-线程-在线程中创建按钮,java,android,eclipse,Java,Android,Eclipse,我需要在我的活动中添加一个按钮 问题是要执行的函数在线程中,所以当我使用“this”关键字向活动添加按钮时,应用程序崩溃 调用线程代码: public void Favourites_Tab_Click(Menu menu , View view) { setContentView(R.layout.default_layout_tab); new Thread(new Create_Button_On_Favourite_Activity()).start(); } 单击ita

我需要在我的活动中添加一个按钮

问题是要执行的函数在线程中,所以当我使用“this”关键字向活动添加按钮时,应用程序崩溃

调用线程代码:

public void Favourites_Tab_Click(Menu menu , View view)
 {
  setContentView(R.layout.default_layout_tab);
  new Thread(new Create_Button_On_Favourite_Activity()).start();
 }
  • 单击itam时调用的收藏夹选项卡单击方法
线程代码:

@SuppressLint("NewApi")
public void Create_New_Contact_Buttons(final String Text_View_Object , String Text_View_Subject , int Text_Font_Size , int Text_Color  , int Back_Ground_Color , int Contact_ID)
 {
  final TextView Text_View_Display=new Button(getApplicationContext());

  Text_View_Display.setText(Text_View_Object+"/"+Text_View_Subject);
  Text_View_Display.setTextColor(Text_Color);

  Text_View_Display.setTextSize(Text_Font_Size);

  if(Contact_ID != 0)
   {
    Text_View_Display.setId(Contact_ID);

    Text_View_Display.setOnClickListener(new View.OnClickListener()
     {
      @Override
      public void onClick(View v)
       {
        String text = Text_View_Object.toString();//Text_View_Display_ID.getText().toString()
        if(text != "")
         {
          Messages_Tab_Click(null, v);
          Intent Sessions_Activity = new Intent(Text_View_Display.getContext(), Sessions_Activity.class);
          startActivity(Sessions_Activity);
         }
       }
     });
   }
  this.addContentView(Text_View_Display, new LinearLayout.LayoutParams(768, 50));
 }

那么我该如何解决这个问题呢?

当您处于
线程的实例中时
将引用该实例。您需要
活动的实例

使用以下命令访问活动的实例:

YourActivityName.this.addContentView(文本视图显示,新的LinearLayout.LayoutParams(768,50))


请注意,从非UI线程添加按钮通常不是一个好的做法(这样做甚至很难)。看看
AsyncTask
类。在
onPostExecute()
方法中,可以创建并放置按钮。

可以发布更多代码吗?你如何定义和运行你的线程?代码对我不起作用。我在“this”之前写下了我的活动名称,Eclipse说我的活动是“default\u layout\u tab”需要定义。1)threadid=11:线程退出时出现未捕获异常2)android.view.ViewRootImpl$CalledFromErrorThreadException:只有创建视图层次结构的原始线程才能接触其视图。这就是为什么我在非UI线程中放置了关于按钮的注释。看一看。