editView 输入框停留的时间

原创 2016年05月30日 15:15:38
package com.cardvalue.sys.widget;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Rect;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.EditText;
import android.widget.Toast;

import com.cardvalue.sys.common.MyApplication;
import com.cardvalue.sys.common.VarKeyNames;
import com.cardvalue.sys.newnetwork.Utiltools;
import com.cardvlaue.sys.R;
//com.cardvalue.sys.widget.EditData
public class EditData extends EditText{
	private String mpageName;//basiclimit  页面名字
	private String minputName;//requestAmout 控件的名字
	private String minputLabel;//标签
	private int startdata;
	private int enddata;
	private int  str1;
	private int  str2;
	private Context context ;
	private Map<String,Object>  data;
	private boolean textChang=false;
	private Date d;
	private Date d1;
	public EditData(Context context, AttributeSet attrs, int defStyleAttr) {   
		super(context, attrs, defStyleAttr);

	}

	public EditData(Context context, AttributeSet attrs) {
		super(context, attrs);
		this.context=context;
		TypedArray typedArray = context.obtainStyledAttributes(attrs,R.styleable.TextData);
		mpageName=typedArray.getString(R.styleable.TextData_pageName);
		minputName=typedArray.getString(R.styleable.TextData_inputName);
		minputLabel=typedArray.getString(R.styleable.TextData_inputLabel);
		addTextChangedListener(new TextWatcher() {
			@Override
			public void onTextChanged(CharSequence s, int start, int before, int count) {
				str2=s.length();
				if(s.length()!=str1){
					textChang=true;
				}
			}

			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {

			}

			@Override
			public void afterTextChanged(Editable s) {	

			}
		});


	}

	public EditData(Context context) {
		super(context);


	}



	/**
	 * 是否获得焦点
	 */
	@Override
	protected void onFocusChanged(boolean focused, int direction,   
			Rect previouslyFocusedRect) {
		if(focused){
			startdata=(int)(new Date().getTime())/1000;
			Date date = new Date();
			Long time = date.getTime();
			d = new Date(time);
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			str1=EditData.this.getText().toString().trim().length();
		}else if(!focused){
			enddata=(int)(new Date().getTime())/1000;
			Log.e("enddata的时间:", enddata+"");
			Date date1 = new Date();
			Long time1 = date1.getTime();
			d1 = new Date(time1);
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			if(textChang){
				Log.e("enddata的时间:", enddata+"textChang=false");
				data=new HashMap<String, Object>();
				data.put("pageName", mpageName);
				data.put("inputName", minputName);
				data.put("inputLabel", minputLabel);
				data.put("onFocusTime", sdf.format(d));
				data.put("onBlurTime", sdf.format(d1));
				/*if(MyApplication.getApplication().getLocalCache()!=null&&MyApplication.getApplication().getLocalCache().getMap(VarKeyNames.UserInfo)!=null){
					Map<String,Object> user = MyApplication.getApplication().getLocalCache().getMap(VarKeyNames.UserInfo);
					data.put("userMobile", user.get("mobilePhone"));
					return;
				}else{
					data.put("userMobile", "");	
				}*/
				
				Utiltools.print(data+"====");
				//Toast.makeText(getContext(), data.toString(), 10000).show();	
				textChang=false;
				//MyApplication.getApplication().addRecord(data);
			}


		}

		super.onFocusChanged(focused, direction, previouslyFocusedRect);

	}
		
	public void setMinputName(String minputName){
		this.minputName = minputName;
	}

}
values/attrs 
<pre name="code" class="java">    <!-- 悄悄计入文本框的数据 -->
    <declare-styleable name="TextData">
        <attr name="pageName" format="string"></attr>
        <attr name="inputName" format="string"></attr>
        <attr name="inputLabel" format="string"></attr>
    </declare-styleable>

再点击按钮的时候调用这个方法,里面的id是布局总的id
public void setFocus(View view) {  
		edit_layout.setFocusable(true);  
		edit_layout.setFocusableInTouchMode(true);  
		edit_layout.requestFocus();  
		edit_layout.requestFocusFromTouch();  
	}  



相关文章推荐

安卓自定义带删除图标的输入框EditView

在安卓中我们使用默认的Editview是只能输入文字的,但是想要删除,我们得利用输入法的删除按钮来一个个删除,现在在好多应用当中,会在输入框的最后出现一个删除图片,点击就清空了所有的数据,这个很方便。...

安卓自定义带删除图标的输入框EditView

安卓自定义带删除图标的输入框EditView
  • lgx06
  • lgx06
  • 2014年12月25日 14:04
  • 4856

Android仿简书上滑输入框停留效果

Android的ScrollView

Flex 时间输入框 TimeInputEx

  • 2012年11月19日 09:29
  • 4KB
  • 下载

分享一下我封装iOS自定义控件的体会,附上三个好用的控件Demo &lt;时间选择器&amp;多行输入框&amp;日期选择器&gt;

前段时间有小伙伴问到我:"这样的控件该怎么做呢?",我感觉是个比较简单的控件,可能对于入行不久的同志思路没有很清晰吧。趁着最近工作不忙,就来这里分享一下我封装自定义控件的几点体会吧。 一个良好的自定...

分享一下我封装iOS自定义控件的体会,附上三个好用的控件Demo <时间选择器&多行输入框&日期选择器>

前段时间有小伙伴问到我:"这样的控件该怎么做呢?",我感觉是个比较简单的控件,可能对于入行不久的同志思路没有很清晰吧。趁着最近工作不忙,就来这里分享一下我封装自定义控件的几点体会吧。 一个良好的...

统计用户停留的时间

  • 2014年12月16日 11:43
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:editView 输入框停留的时间
举报原因:
原因补充:

(最多只允许输入30个字)