我需要在活动中添加一个按钮。
问题是这样做的功能是在线程中,所以当我使用"这个"用于向活动添加按钮的关键字,应用程序崩溃。
调用线程代码:
public void Favourites_Tab_Click(Menu menu , View view)
{
setContentView(R.layout.default_layout_tab);
new Thread(new Create_Button_On_Favourite_Activity()).start();
}
线程代码:
@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));
}
那我该如何解决呢?
答案 0 :(得分:0)
当您处于Thread
this
的实例时,将引用该实例。您需要Activity
的实例。
使用以下命令访问您的活动实例:
YourActivityName.this.addContentView(Text_View_Display, new LinearLayout.LayoutParams(768, 50));
请注意,从非UI线程添加按钮通常不是一个好习惯(甚至很难这样做)。看一下AsyncTask
课程。在onPostExecute()
方法中,您可以创建并放置按钮。