Activity间传递Bitmap,startActivityForResult的用法
来源:互联网 发布:东海舰队 知乎 编辑:程序博客网 时间:2024/06/07 16:37
之前那个手势输入法的程序,想添加个类似dialog的功能(当时还不知道dialog...只知道用activity仿dialog-_-)
需要在Activity之间传递Bitmap.之前在网上查到可以写一个类,把消息作为类的数据成员来传递。
可是实现之后报错,再google,才知道Bitmap是无法用序列化的方法传递的,用其他方法
其中一种就是作为全局变量传递。
首先写一个类:
- package com.uyu.gesturepro;
- import android.app.Application;
- import android.graphics.Bitmap;
- public class InfoClass extends Application{
- private Bitmap bmp;
- private String name;
- public String getName(){
- return name;
- }
- public void setName(String name){
- this.name = name;
- }
- public Bitmap getBmp(){
- return bmp;
- }
- public void setBmp(Bitmap bmp){
- this.bmp = bmp;
- }
- }
然后再Activitymanifest.xml中注册一下
<application android:name =".InfoClass" android:icon="@drawable/icon" android:label="@string/app_name">
注意 这里不是重新写一条<application/>,而是在原有的里面加上 android:name =".InfoClass"
接下来是使用
赋值:
- InfoClass info = (InfoClass)getApplication();
- info.setBmp(bmp);
- info.setName(et.getText().toString());
使用:
- InfoClass info = (InfoClass)getApplication();
- tv.setText("手势ID为:"+info.getName());
- iv.setImageBitmap(info.getBmp());
OK,Bitmap变量传递过去了,其实这就是一种全局变量的用法,据说比public Static有更好的安全性,呵呵
startActivityForResult的用法
在main_Activity中:注意我这里只需要sub_Activity传回ok or cancel的消息就可以了
所以并没有用intent传值过去,也没有传确切的值回到main,但是如果需要是可以互相传递值的
具体用法就不写了,有需要去网上搜索相应的帖子吧
- Intent intent = new Intent();
- intent.setClass(gesturepro.this, gestureView.class);
- gesturepro.this.startActivityForResult(intent, 0);
在sub_Activitiy中:
- Intent data = new Intent();
- setResult(RESULT_OK, data);
- finish();
值传回来以后,在onActivityResult()方法中处理,根据传回来的resultCode来选择相应的处理
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- // TODO Auto-generated method stub
- Log.d("uyu","return");
- switch(resultCode){
- case RESULT_OK:
- addMyGesture(et.getText().toString(), gesture);
- break;
- case RESULT_CANCELED:
- tv.setText("重新输入手势:");
- gov.clear(true);
- break;
- default:
- break;
- }
- }
其实使用dialog完全可以完成同样的功能。。我也是做完以后才知道的
一直没学过dialog的用法-_- 又闹笑话了
不过也通过弯路学到了东西,无所谓啦
- Activity间传递Bitmap,startActivityForResult的用法
- Intent的用法(一),启动activity传递数据以及startActivityForResult
- Intent的用法(一),启动activity传递数据以及startActivityForResult .
- activity间数据传递--startActivityForResult()&setResult()
- 详细解释下多个Activity之间 startActivityForResult 时,requestCode 和 resultCode 的传递和用法
- Android Activity.startActivityForResult的详细用法
- activity 之间信息的传递 Intent 回调参数startActivityForResult
- Activity间通过Intent传递Bitmap对象
- Activity之间传递Bitmap
- Activity传递Bitmap对象
- Activity之间传递bitmap
- Activity返回值-->startActivityForResult用法
- Activity学习之startActivityForResult()与onPause()的用法
- Activity间的跳转,startActivity与startActivityForResult
- 两个activity之前传递数据startActivityForResult
- Activity数据传递之StartActivityForResult(上)
- Activity之间startActivityForResult传递和接受数据
- android activity之间传递bitmap
- Android仿微信气泡聊天界面设计
- IOS开发 tableview中cell的用法
- 本地连接受限制或无连接怎么办
- linux驱动开发--字符设备:动态分配设备号
- nginx禁止ip访问, 禁止绑定同一个ip的不同域名访问
- Activity间传递Bitmap,startActivityForResult的用法
- 关于gif图片(或png8)杂边锯齿的问题
- FFMpeg框架代码阅读
- QT中位图bitmap与VC的区别
- Deep Learning源代码收集
- oracle笔记——第三天:事务,函数
- 完美解决XCODE5.0以上不会自动更新资源文件的小bug
- 【思考】大数据量,海量数据 处理方法总结
- 测试流程和用例编写总结