当前位置:  编程技术>移动开发
本页文章导读:
    ▪struts2处置上传的文件        struts2处理上传的文件 public abstract class ActionEngine extends ActionSupport implements ServletRequestAware { private HttpServletRequest httpServletRequest; public void setServletRequest(HttpServletRequest servletRequest) { .........
    ▪ 透过代码设置Activity的Launch Mode        通过代码设置Activity的Launch Mode 在AndroidManifest.xml里,可以设置每个Activity的启动模式(Launch Mode),但是如果希望动态的切换就需要在代码中添加相应的flag来实现。通过调查发现,代码中添加.........
    ▪ 新浪Weibo开发回到小弟我们Activity经验总结       新浪Weibo开发回到我们Activity经验总结   在今天的Weibo项目开发中发现一即简单又容易出错的地方让我2了好一会不过还是让我给解决了,问题如下:  我在开发新浪微博客户端的时候采用.........

[1]struts2处置上传的文件
    来源: 互联网  发布时间: 2014-02-18
struts2处理上传的文件
public abstract class ActionEngine extends ActionSupport implements ServletRequestAware
{
    private HttpServletRequest httpServletRequest;
    public void setServletRequest(HttpServletRequest servletRequest)
    {
        this.httpServletRequest = servletRequest;
    }
    protected Map<String, Object> fileMap = new HashMap<String, Object>();
    public void preExecute() throws Exception
    {
        if (httpServletRequest instanceof MultiPartRequestWrapper)
        {
            MultiPartRequestWrapper requestWrapper = (MultiPartRequestWrapper) httpServletRequest;

            if (requestWrapper.hasErrors())
            {
                Collection<String> errors = requestWrapper.getErrors();
                if (errors != null && !errors.isEmpty())
                {
                    Iterator iterator = errors.iterator();
                    long maxSize = 0;
                    if (requestWrapper.getAttribute("maxSize") != null)
                    {
                        maxSize = Long.parseLong(requestWrapper.getAttribute("maxSize")
                                .toString());
                        maxSize = maxSize / 1024 / 1024;
                    }

                    while (iterator.hasNext())
                    {
                        throw new XXXException;
                    }
                }
                return;
            }

            Enumeration<String> parameterNames = requestWrapper.getFileParameterNames();
            while (parameterNames.hasMoreElements())
            {
                @SuppressWarnings("unused")
                String paramterName = parameterNames.nextElement();
                File[] files = requestWrapper.getFiles(paramterName);
                if (null == files || files.length == 0)
                {
                    continue;
                }
                else if (files.length == 1)
                {
                    FileBean fileBean = new FileBean();
                    fileBean.setAbsolutePath(files[0].getAbsolutePath());
                    fileBean.setFileSize(files[0].length());
                    fileBean.setFilename(requestWrapper.getFileNames(paramterName)[0]);
                    this.fileMap.put(paramterName, fileBean);
                }
                else
                {
                    ArrayList<FileBean> list = new ArrayList();
                    for (int i = 0; i < files.length; i++)
                    {
                        File file = files[i];
                        FileBean fileBean = new FileBean();
                        fileBean.setAbsolutePath(file.getAbsolutePath());
                        fileBean.setFileSize(file.length());
                        fileBean.setFilename(requestWrapper.getFileNames(paramterName)[i]);
                        list.add(fileBean);
                    }
                    this.fileMap.put(paramterName, list);
                }
            }
        }
    }
}

    
[2] 透过代码设置Activity的Launch Mode
    来源: 互联网  发布时间: 2014-02-18
通过代码设置Activity的Launch Mode
在AndroidManifest.xml里,可以设置每个Activity的启动模式(Launch Mode),但是如果希望动态的切换就需要在代码中添加相应的flag来实现。

通过调查发现,代码中添加下列flag就可以近似的实现不同的启动模式

1. Standard
// 标准启动模式,不用添加任何flag

2. Single Top
会触发onNewIntent()函数
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

3. Single Task
不会触发onNewIntent()函数,还在调查中。。。
败给google了,一定要把launch mode设成single top才会触发onNewIntent()函数。
不然就只会先finish(),再onCreate()了。
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

4. Single Instance
会触发onNewIntent()函数
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

当然这样添加了flag后,只能保证在当前工程内Activity的行为是正确的,跨工程的没有尝试。
最后上传整个工程。

    
[3] 新浪Weibo开发回到小弟我们Activity经验总结
    来源: 互联网  发布时间: 2014-02-18
新浪Weibo开发回到我们Activity经验总结
  在今天的Weibo项目开发中发现一即简单又容易出错的地方让我2了好一会不过还是让我给解决了,问题如下:
  我在开发新浪微博客户端的时候采用的是MVC模式开发用一个Servers来负责我的所有业务逻辑的处理,而把我的所有的界面的显示都交给我们的Activity来显示,当有了数据的更新的时候我就不断的回调这些Activity。当然这里被回到的Activity都是继承了我自己写的一个接口如:
public interface IAcitvity {

public void init();//负责初始化
public void refresh(Object ...param);//负责刷新界面
}
在我的开发中就是让我蛋疼的地方就是:
  例如:我在通过开启线程去下载图片的时候时当有了新的图片被加载到我的程序的时候我需要回到Activity去刷新数据这是=注意:在我们回到我们的activity的时候一定要确保我们的实例还存在,如果不存在我们还去调用这个实例的话就有空指针异常啦!!!哈哈!虽然听上去很简单但是这是值得注意的所有我们在回到这个activity得时候要先去判断这个实例是否存在...好了就写这么多。希望对您有帮助...

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3