从J2EE转向Android的第二天
1、不同Activity之间的数据传递:
MainActivity中:
EditText et_shengao=(EditText)findViewById(R.id.et_shengao);
RadioButton rb_gender_male=(RadioButton)findViewById(R.id.rb_gender_male);
Double shengao=Double.parseDouble(et_shengao.getText().toString().trim());
String gender="";
if(rb_gender_male.isChecked()){
gender="M";
}else{
gender="F";
}
//创建Intent
Intent intent=new Intent();
intent.setClass(MainActivity.this,MyActivity.class);
//创建Bundle对象,并绑定数据
Bundle bundle=new Bundle();
bundle.putDouble("shengao",shengao);
bundle.putString("gender",gender);
//将Bundle对象分配给Intent对象
intent.putExtras(bundle);
startActivity(intent);
MyActivity中:
//获取Intent中的bundle对象
Bundle bundle=this.getIntent().getExtras();
//取得bundle中的数据
String gender=bundle.getString("gender");
Double shengao=bundle.getDouble("shengao");
if("M".equals(gender)){
gender="男";
}else{
gender="女";
}
TextView tvResult=(TextView)this.findViewById(R.id.tv_result);
tvResult.setText("你是"+gender+"性"+",身高为"+shengao+" cm");
2、返回数据到前一Activity
MainActivity中将startActivity(intent),改为startActivityForResult(intent,0);
并重写方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(resultCode){
case RESULT_OK:
Bundle bundle=data.getExtras();
String gender=bundle.getString("gender");
et_shengao.setText(String.valueOf(bundle.getDouble("shengao")));
if("M".equals(gender)){
rb_gender_male.setChecked(true);
}else{
rb_gender_female.setChecked(true);
}
break;
default:
break;
}
}
MyActivity中Button事件中加入:
//返回Result到上一个Activity
MyActivity.this.setResult(RESULT_OK,intent);
//结束这个Activity
MyActivity.this.finish();
以下为弹出一个对话框当点击确定后再继续执行返回前一Activity:
Button btnBack=(Button)this.findViewById(R.id.btn_back);
btnBack.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
new AlertDialog.Builder(MyActivity.this).
setTitle(R.string.alertTitle).
setMessage(R.string.alertMsg).
setPositiveButton(R.string.alert_opt, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//返回Result到上一个Activity
MyActivity.this.setResult(RESULT_OK,intent);
//结束这个Activity
MyActivity.this.finish();
}
}).show();
}
});
今天就到这儿吧,明天周末可以睡懒觉了,哈哈!皆さんお休みなさい
更多相关文章
- Android 使用数据库 SQlite
- 获取定位数据
- android获取网络数据
- Android 线程的结束,挂起和恢复
- Fragment与FragmentActivity间的数据通讯详细解决方案
- android之SQLite数据库insert操作
- 利用android自带的JSONObject解析json数据
- android 以编程的方式使用SQLite数据库 执行CRUD(创建 读取 更新
- android操作sqlite3的blob字段,显示数据中的图片