我按照链接 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);
行
答案 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);