Android 在新活动中,应用程序在尝试将text()设置为textview时终止

Android 在新活动中,应用程序在尝试将text()设置为textview时终止,android,android-intent,android-activity,Android,Android Intent,Android Activity,我跟随链接 将字符串从一个活动发送到另一个活动。第二个活动中有一个文本视图,我尝试显示第一个活动中的字符串。但应用程序在该行终止 主要活动 Intent intent=new Intent(this,DisplayActivity.class); intent.putExtra(EXTRA_MESSAGE,Data); startActivity(intent); 展示活动 TextView listname; @Override protected void onCre

我跟随链接

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

主要活动

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(消息)

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

setContentView(R.layout.activity_display);
listname = (TextView) findViewById(R.id.msg);
正如docs所说:

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


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

您需要更改顺序<在初始化小部件之前,必须调用code>setContentView()

setContentView(R.layout.activity_display);
listname = (TextView) findViewById(R.id.msg);
正如docs所说:

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


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

以这种方式在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);

以这种方式在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);

始终显示堆栈跟踪…始终显示堆栈跟踪。。。