基本上我有一个屏幕可以添加或更新用户联系信息。问题是我必须使用相同的屏幕来做这两件事。
当用户选择“新”时,我只需传递这样的意图:
newButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent(ContactProjectActivity.this, AddContact.class);
startActivity(intent);
}
});
从单独的活动中,当用户选择“编辑”时,我会像这样传递意图:
edit.setOnClickListener(new Button.OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent(ContactView.this, AddContact.class);
intent.putExtra("name",personName.getText().toString());
startActivity(intent);
}
});
在新建/编辑页面上,我有以下代码:
final Bundle extras = getIntent().getExtras();
String searchTerm = extras.getString("name");
if (extras.size() > 0) {
int index = searchTerm.indexOf(' ');
final String fName = searchTerm.substring(0, index);
final String lName = searchTerm.substring(index + 1, searchTerm.length());
使用此代码,我正在检查哪些活动即将进入我的页面。如果我有信息传递给我,我知道我应该编辑数据。
问题是,当我在ContactProjectActivity类中单击newButton时,我的程序崩溃了。
答案 0 :(得分:1)
在新建/编辑页面上,只需检查您是否获得了额外内容。
if(extras!=null)
{
String searchTerm = extras.getString("name");
}
答案 1 :(得分:1)
在你的AddContact.class中,你应该使用:
String searchTerm="";
if(getIntent().hasExtra("name"))
searchTerm= getIntent().getStringExtra("name");
而不是使用
final Bundle extras = getIntent().getExtras();
String searchTerm = extras.getString("name");
答案 2 :(得分:0)
使用Intent的boolean hasExtra(String name)
方法检查您是否有额外内容。