在新的活动应用程序中,尝试将setText()转换为textview

时间:2013-03-16 12:33:41

标签: android android-intent android-activity

我按照链接 http://developer.android.com/training/basics/firstapp/starting-activity.html

将一个字符串从一个活动发送到另一个活动。第二个活动中有一个文本视图,我尝试显示第一个活动的字符串。但是应用程序在该行终止,

mainactivity

Intent intent=new Intent(this,DisplayActivity.class);
    intent.putExtra(EXTRA_MESSAGE,Data);

    startActivity(intent);

显示活动

TextView listname;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    listname=(TextView) findViewById(R.id.msg);

     Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
    listname.setText(message);
    setContentView(R.layout.activity_display);

申请终止于第listname.setText(message);

2 个答案:

答案 0 :(得分:2)

您需要更改订单。在开始初始化小部件之前,必须先调用setContentView()

setContentView(R.layout.activity_display);
listname = (TextView) findViewById(R.id.msg);

文档说的正是:

  

setContentView方法从布局资源设置活动内容。   资源将被夸大,将所有顶级视图添加到   活性。

换句话说,setContentView()方法是布局膨胀,它创建包含在布局中的所有UI元素实例,然后将布局附加到Activity。所以首先必须调用setContentView然后初始化UI元素。

答案 1 :(得分:1)

在DisplayActivity中尝试相同的代码这样..

TextView listname;

@Override

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display);
listname=(TextView) findViewById(R.id.msg);

Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
listname.setText(message);