信息编辑的实现onActivityResult的运用
来源:互联网 发布:淘宝苹果手机哪家靠谱 编辑:程序博客网 时间:2024/06/05 19:11
有一种编辑是刚开始界面不可以编辑,点击编辑按钮后,可以对页面上的信息进行编辑。(这种没有写过)
今天要记录的是所有要编辑的item,点击都是跳转到同一界面,保存后反传值到之前点击的item。
像这个界面,我要添加一个客户
点击item,都是跳转到以下界面,标题根据点击的item变化
添加界面的点击事件代码
@Event(value = {R.id.rl_name, R.id.rl_sex, R.id.rl_tel, R.id.rl_email, R.id.rl_address}) private void onItemClick(View v) { startActiviIntent.setClass(App.getInstance(), ActivityEdit.class); Bundle bundle = new Bundle();//新建一个bundle存值 switch (v.getId()) { case R.id.rl_name: bundle.putString("title", "客户姓名"); bundle.putString("target", tvName.getText().toString()); bundle.putString("code", "1"); startActiviIntent.putExtras(bundle); startActivityForResult(startActiviIntent, 1); break; case R.id.rl_sex://系统自带的单选框 /* new AlertDialog.Builder(this).setTitle("性别").setSingleChoiceItems( new String[]{"男", "女"}, 0, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }).show();*/ break; case R.id.rl_tel: bundle.putString("title", "客户电话"); bundle.putString("target", tvTel.getText().toString()); bundle.putString("code", "2"); startActiviIntent.putExtras(bundle); startActivityForResult(startActiviIntent, 2); break; case R.id.rl_email: bundle.putString("title", "客户邮箱"); bundle.putString("target", tvEmail.getText().toString()); bundle.putString("code", "3"); startActiviIntent.putExtras(bundle); startActivityForResult(startActiviIntent, 3); break; case R.id.rl_address: bundle.putString("title", "客户地址"); bundle.putString("target", tvAddress.getText().toString()); bundle.putString("code", "4"); startActiviIntent.putExtras(bundle); startActivityForResult(startActiviIntent, 4); break; default: break; } }
编辑界面代码
Intent intent = getIntent(); String message = intent.getStringExtra("target").toString().trim(); code=intent.getStringExtra("code").toString().trim(); tvTitle.setText(intent.getStringExtra("title").toString().trim()); etData.setText(message); etData.setSelection(message.length());// 使光标置于文末
根据key获取相应的值,在界面上显示,将输入的信息使用bundle类存储起来,再反过去传给点击的item
@Event(R.id.btn_save) private void onSaveClick(View view){ Bundle bundle = new Bundle(); switch (code){ //1-4:目标客户 6-8:预订车辆客户信息 10-17:我的资料 case "1": etData.setInputType(InputType.TYPE_TEXT_VARIATION_PERSON_NAME);//设置输入类型 bundle.putString("reTarget",etData.getText().toString().trim());//再次存储 ActivityEdit.this.setResult(11, ActivityEdit.this.getIntent().putExtras(bundle)); finish(); break; case "2": etData.setInputType(InputType.TYPE_CLASS_PHONE); bundle.putString("reTarget",etData.getText().toString().trim()); ActivityEdit.this.setResult(22, ActivityEdit.this.getIntent().putExtras(bundle)); finish(); break; case "3": etData.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); bundle.putString("reTarget",etData.getText().toString().trim()); ActivityEdit.this.setResult(33, ActivityEdit.this.getIntent().putExtras(bundle)); finish(); break; case "4": bundle.putString("reTarget",etData.getText().toString().trim()); ActivityEdit.this.setResult(44, ActivityEdit.this.getIntent().putExtras(bundle)); finish(); break;
}
}
回到添加客户界面,通过onActivityResult方法获取返回值
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (data != null) {//一定要进行非空判断,不然没有值传递的时候会报错 Bundle bundle = data.getExtras(); String content = bundle.getString("reTarget").toString().trim(); switch (resultCode){ case 11: tvName.setText(content); break; case 22: tvTel.setText(content); break; case 33: tvEmail.setText(content); break; case 44: tvAddress.setText(content); break; default: break; } } }
做好啦~
今天之前我还一直有个疑问,写完博客之后才发现我用的是requestCode而不是resultCode,我说怎么获取到的是1,2,3,4,而不是11,22,33,44
不过还是有个问题:我的输入框明明设置了输入类型,但是运行起来并没有限制(已解决)
这个问题是因为我把输入类型设置写在了点击事件里面,应该在页面启动的时候就根据前面的传值判断输入类型。
0 0
- 信息编辑的实现onActivityResult的运用
- DialogFragment中如何获取Activity中onActivityResult的返回信息
- 如何编辑管理的信息?
- 关于运用edit文件夹下面的内容实现多媒体编辑文本
- onActivityResult不执行 或者 onActivityResult的解决方法
- 关于Activity的onActivityResult
- onActivityResult的用法
- onActivityResult的用法
- Android onActivityResult()的问题
- Android:onActivityResult的使用
- onActivityResult的用法
- Android:onActivityResult的使用
- fragment 的onActivityResult
- onActivityResult 的用法
- onActivityResult(),startActivityForResult()的使用
- onActivityResult的用法
- onActivityResult的用法
- onActivityResult的各种"坑"
- Android Service 服务(一)—— Service
- MIRACL大数运算库使用手册
- Fragment和Activity之间的交互
- BeanUntils小结
- React Native(Window篇)
- 信息编辑的实现onActivityResult的运用
- 中国裁定奔驰汽车垄断
- windows下善用bat
- mysql之查看当前自己信息
- C语言考试系统
- ubuntu16 安装wine
- Java程序设计(五)关于null的一点体会
- 中国裁定奔驰汽车垄断
- PBR贴图转换3——传统工作流的吐槽