Android:setText()出错
代码如下:publicclassActivityAextendsActionBarActivity{@SuppressLint("NewApi")@Overridepro...
代码如下:
public class ActivityA extends ActionBarActivity
{
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_a);
Intent intent = getIntent();
String message = intent.getStringExtra(ActivityStart.EXTRA_MESSAGE);
TextView textView = new TextView(this);
textView = (TextView)findViewById(R.id.TextA);
textView.setText(message);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
把setText那行注释掉就没问题了,但是加上程序就会崩溃。xml内容是:
<TextView
android:id="@+id/TextA"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/contentA"
/> 展开
public class ActivityA extends ActionBarActivity
{
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_a);
Intent intent = getIntent();
String message = intent.getStringExtra(ActivityStart.EXTRA_MESSAGE);
TextView textView = new TextView(this);
textView = (TextView)findViewById(R.id.TextA);
textView.setText(message);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
把setText那行注释掉就没问题了,但是加上程序就会崩溃。xml内容是:
<TextView
android:id="@+id/TextA"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/contentA"
/> 展开
4个回答
展开全部
额..... 你把TextView textView = new TextView(this);去掉 改成 TextView textView;
追问
试过了,没用
追答
//
textView.setText(message);//这个写到这是错误的,更新UI的事情不能放到其他线程去做,要在UI线程去做
//更改后如下//
public class ActivityA extends ActionBarActivity
{
private TextView textView;
private Handler han;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_a);
Intent intent = getIntent();
String message = intent.getStringExtra(ActivityStart.EXTRA_MESSAGE);
textView = (TextView)findViewById(R.id.TextA);
han = new Handler(){
@Override
public void handleMessage(Message msg) {
textView.setText(message);
}
};
han.sendEmptyMessage(0);
}
//这会你试试//主要报错的原因是Android禁止其他子线程来更新由UI线程创建的UI组件
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
message值没有传过来,为null,setText参数不能为null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
message 为null 呗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询