Android开发有关Intent的问题
目标效果是这样:有一个个人信息显示页面显示个人信息,其中每条信息用TextView显示,并分别设置监听器跳转至同一个带有文本框的Activity,并在点击确定按钮后将信息传回个人信息列表并更新,通过putExtra确定修改条目和修改信息。另外,还有另外一个activity通过intent跳转至个人信息显示的页面。问题:更改数据无法在显示页面更新。
个人信息显示页面代码如下:
[code=Java][/code]public class Update_Personal_information extends Activity
{
//声明各个控件
private TextView name_textView = null;
private TextView id_textView = null;
private TextView sex_textView = null;
private TextView class_textView = null;
private TextView age_textView = null;
private TextView telephone_textView = null;
private Button update_Button = null;
private Button cancel_Personalinformation_Button = null;
//声明变量
String modify_Type = null;
String modify_Data = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//自定义标题栏
setTheme(R.style.title_styse);
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.update_personalinformation);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.title_style);
//取得各个控件
name_textView = (TextView)findViewById(R.id.textview_myaccount_name);
id_textView = (TextView)findViewById(R.id.textview_myaccount_ID);
sex_textView = (TextView)findViewById(R.id.textview_myaccount_sex);
class_textView = (TextView)findViewById(R.id.textview_myaccount_class);
age_textView = (TextView)findViewById(R.id.textview_myaccount_age);
telephone_textView = (TextView)findViewById(R.id.textview_myaccount_telephone);
update_Button = (Button)findViewById(R.id.button_myaccount_create);
cancel_Personalinformation_Button = (Button)findViewById(R.id.button_myaccount_cancel);
Intent intent_from_front = getIntent();
modify_Type = intent_from_front.getStringExtra( "Modify_Type ");
modify_Data = intent_from_front.getStringExtra( "Modify_Data ");
//将修改信息更新至此页面
if (modify_Type== "Modify_Name ") {
name_textView.setText(modify_Data);
} else if (modify_Type== "Modify_ID ") {
id_textView.setText(modify_Data);
} else if (modify_Type== "Modify_Sex ") {
sex_textView.setText(modify_Data);
} else if (modify_Type== "Modify_Class ") {
class_textView.setText(modify_Data);
} else if (modify_Type== "Modify_Age ") {
age_textView.setText(modify_Data);
} else if (modify_Type== "Modify_Telephone ") {
telephone_textView.setText(modify_Data);
}
//设置监听,转向修改页面
name_textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Update_Personal_information.this,Modify_personalinformation.class);
intent.putExtra( "Modify_Type ", "Modify_Name ");
intent.putExtra( "Modify_Data ", name_textView.getText());
startActivity(intent);
}
});
id_textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Update_Personal_information.this,Modify_personalinformation.class);
intent.putExtra( "Modify_Type ", "Modify_ ID ");
intent.putExtra( "Modify_Data ", id_textView.getText());
startActivity(intent);
}
});
sex_textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Update_Personal_information.this,Modify_personalinformation.class);
intent.putExtra( "Modify_Type ", "Modify_Sex ");
intent.putExtra( "Modify_Data ", sex_textView.getText());
startActivity(intent);
}
});
class_textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Update_Personal_information.this,Modify_personalinformation.class);
intent.putExtra( "Modify_Type ", "Modify_Class ");
intent.putExtra( "Modify_Data ", class_textView.getText());
startActivity(intent);
}
});
age_textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Update_Personal_information.this,Modify_personalinformation.class);
intent.putExtra( "Modify_Type ", "Modify_Age ");
intent.putExtra( "Modify_Data ", age_textView.getText());
startActivity(intent);
}
});
telephone_textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Update_Personal_information.this,Modify_personalinformation.class);
intent.putExtra( "Modify_Type ", "Modify_Telephone ");
intent.putExtra( "Modify_Data ", telephone_textView.getText());
startActivity(intent);
}
});
}
}
修改页代码如下:
[code=Java][/code]public class Modify_personalinformation extends Activity
{
//声明控件
EditText editText_Modify = null;
Button button_Modify_Confirm = null;
Button button_Modify_Cancel = null;
//声明变量
String modify_Type = null;
String modify_Data = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.modify_personalinformation);
//取得各个控件
editText_Modify = (EditText)findViewById(R.id.editText_modify_personalinformation);
button_Modify_Confirm = (Button)findViewById(R.id.button_modify_personalinformation_confirm);
button_Modify_Cancel = (Button)findViewById(R.id.button_modify_personalinformation_cancel);
Intent intent_from_front = getIntent();
modify_Type = intent_from_front.getStringExtra( "Modify_Type ");
modify_Data = intent_from_front.getStringExtra( "Modify_Data ");
//设置监听
button_Modify_Confirm.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Modify_personalinformation.this,Update_Personal_information.class);
modify_Data = editText_Modify.getText().toString();
intent.putExtra( "Modify_Type ", modify_Type);
intent.putExtra( "Modify_Data ", modify_Data);
startActivity(intent);
}
});
button_Modify_Cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Modify_personalinformation.this,Update_Personal_information.class);
startActivity(intent);
}
});
}
}
[解决办法]
用startActivityForResult()进行跳转,
并且实现一个回调函数OnA...result()---这个方法接收个人信息修改后传回的数据。
你可以搜一下startActivityForResult()用法