目标效果是这样:有一个个人信息显示页面显示个人信息,其中每条信息用TextView显示,并分别设置监听器跳转至同一个带有文本框的Activity,并在点击确定按钮后将信息传回个人信息列表并更新,通过putExtra确定修改条目和修改信息。另外,还有另外一个activity通过intent跳转至个人信息显示的页面。问题:更改数据无法在显示页面更新。
个人信息显示页面代码如下:
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);
}
});

}
}
修改页代码如下:
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);
}
});

}
}

解决方案 »

  1.   

    个人信息显示页面代码如下: 
    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); 

    }); } 

    修改页代码如下: 
    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); 

    }); } 
    }
      

  2.   

    刚刚把==改成了.equals结果直接报错NullPointerException,怎么办啊?
      

  3.   

    用startActivityForResult()进行跳转,
    并且实现一个回调函数OnA...result()---这个方法接收个人信息修改后传回的数据。
    你可以搜一下startActivityForResult()用法
      

  4.   

    额,问题解决了,是因为字符串变量初始化的时候是null,null的变量调用.equals方法就会产生异常。不过还是很谢谢你啦!