一些java处理变量的 让我眼前一亮的

比如 你要 获取 uuid 拼接的字符串;


  

  Map<String, String> paramsMap=new HashMap<String, String>();
        
        paramsMap.put("1", "aa");
        paramsMap.put("3", "aa");
        paramsMap.put("2", "aa");
        
        List<String > paramsValueList=new ArrayList<String>();
        paramsValueList.addAll(paramsMap.values());
        String uuids="";
        String[] keys = paramsMap.keySet().toArray(new String[paramsMap.size()]);
        Arrays.sort(keys);
        for (String key : keys) {
            uuids+=key+",";
        }
        
        System.out.println(uuids. subSequence(0, uuids.length() - 1).toString());


startsWith 判断字符串第一个字母是什么!

indexOf 判断 前面一个很多个逗号分隔的字符串里是否包含当前人的uuid;

	<span style="white-space:pre">	</span>String title = "";
		if (key.startsWith("0_")) {
			DepartmentField department = (DepartmentField) data.get(key);
			title = department.departName + "(" + department.departCount + "人)";
		}
		if (key.startsWith("1_")) {
			EmployeeField employee = (EmployeeField) data.get(key);
			String positionName = "";
			switch (employee.position) {
			case "1":
				positionName = " 部门主管";
				break;
			case "2":
				positionName = " 部门副主管";
				break;
			}
			title = employee.personName + "   " + positionName;
			if (!TextUtils.isEmpty(disabledItems)) {
				if (("," + disabledItems + ",").indexOf("," + employee.personUuid + ",") != -1) {
					holder.buttonDelete.setVisibility(View.GONE);
					holder.buttonDelete.setOnClickListener(null);
				}
			}
		}


checkBox 勾选 选择人的界面 ischeck 一些是否选择点击 true的false的场景

uuid 可以用_0 和_1 _2 来赋值加uuid 这样startsWith就用上了, 

data 一般都是对象

selected 就是 checkbox的状态 ,

我们来map来存数据,控制他是否勾选;

private void processingSelectedDisplayData(String uuid, Object data, boolean selected) {
		if (selected) {
			dataSelectedDisply.put(uuid, data);
		} else {
			dataSelectedDisply.remove(uuid);
		}
		adapterSelected.notifyDataSetChanged();
	}


2016.10.28日

今天,我在做项目的时候, A跳转一个B : activity, 但同时onActivityForResult 直接就调用了; resultCode 为 0 ,requestCode 和启动的一致;

这样在导致我们从第二界面回来不再走onActivityForResult 了,拿不到数据;

启动方式 :

	A: 
	Intent intent = new Intent(getIntent());
	intent.setClass(A.this, B.class);
	startActivityForResult(intent, REQUESTCODE_SINGLETASKDOME);
 
    结果发现是:  
		new Intent(getIntent()); 他导致的, 因为我以前都这样把上一个界面的数据传递过来;没考虑会导致这样状况;
    有一个情况,我写了一个C界面, 从C跳转到A,再次从A 跳B ,这时倒拿到数据, 呵呵;
	
		Intent intent = new Intent(C.this,A.class);
    这时,我吧C改了下:
		Intent intent = new Intent(getIntent());
		intent.setClass(C.this,A.class);
		startActivityForResult(intent,REQUEST_HOME); 
    C点击下一个A直接会走onActivityForResult 在A界面点击去B 也会调用onActivityForResult ,
   		
    最后说明; 我们要是想启动一个activity不能 new Intent(getIntent()); 否则会导致你 点击去下一个界面的同时直接就会走
onActivityForResult ,下个界面回来也拿到不到 onActivityForResult 的结果了;
    除非你在第一个界面是 new Intent(); 起手的,这样你后续可以 new Intent(getIntent()); 因为你取的是一个界面的Intent状态;
    未明白的问题 : 不知道为什么这样第一个界面这样起手会导致直接调用onActivityForResult 
		Intent intent = new Intent(getIntent());
		intent.setClass(C.this,A.class);
		startActivityForResult(intent,REQUEST_HOME); 



RxBus 测试 : 结果是你在post后,无论你结束的方法写在哪个界面,他都会立即结束结果; 

前提是你需要注入监听;

       mRxBus.register(eventName);
/**
 * RxBus注入监听
 * @param eventName
 * @param action1
 */
public <T>void on(String eventName, Action1<T> action1) {
    Observable<T> mObservable = mRxBus.register(eventName);
    mObservables.put(eventName, mObservable);
    /*订阅管理*/
    mCompositeSubscription.add(mObservable.observeOn(AndroidSchedulers.mainThread())
            .subscribe(action1, new Action1<Throwable>() {
                @Override
                public void call(Throwable throwable) {
                    throwable.printStackTrace();
                }
            }));
}

我们在循环的时候 , 想 边循环 边删除 可以有2种办法 ;


  for (int i = 0; i < list.size(); i++) {
            System.out.println("哈哈"+i);
            list.remove(i);
            i--; //每次删除后,集合就少1, i-- ,让我们永远都获取集合里的第一个索引元素;
        }
<span style="white-space:pre">	</span>
 for (int i = list.size()-1; i >=0; i--) {
            System.out.println("哈哈"+i);
            list.remove(i);//每次都获取集合最大索引,删除一个后,继续获取最大索引来遍历
  }


在splashActivity界面,设置了白色的背景: 

<item name="android:Background">@color/white</item> 让我的图片和文字都有白色的View方框背景  ; 
换成下面的 图片和文字和白色的背景融为一体了;

<style name="AppTheme.Launcher" parent="Theme.AppCompat.LightNoActionBar">
    <item name="android:windowBackground">@color/white</item> 
</style>

居然还有数组,每个数组是一个集合的这个东西!!!!!!!


  List<String> list = new ArrayList<String>();// 定义一个集合
        list.add("1");// 集合存东西
        List[] reselectList = new List[2];// 定义 2个数组 ,每个数组是一个集合对象

        reselectList[1] = list;// 给数组索引第二个list赋值
        for (int i = 0; i < reselectList.length; i++) {
            List list2 = reselectList[i];
            System.out.println(list2);
        }





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值