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();  
	}  



[Android] 带有输入框(EditText)的提示框(AlertDialog)

新建一个用于显示EditText的布局: [html] view plain copy print? xml version="1.0" encoding="utf-8...
  • bingqingsuimeng
  • bingqingsuimeng
  • 2016年05月17日 10:20
  • 1683

显示停留页面的时间

html>head>title>asdftitle>script language = JavaScript>    // 按"时:分:秒"的格式设置限制时间    var limit    =   ...
  • ShingU
  • ShingU
  • 2005年03月23日 13:33
  • 941

html 不让输入框停留光标

html 不让输入框停留光标的两种方法
  • lihuisssss
  • lihuisssss
  • 2012年11月22日 20:22
  • 116

计算用户在页面停留的时间

beforeunload事件可计算出用户停留在页面的时间具体代码如下:   var start;   var end;   var total_time = 0;   start = new ...
  • bymyself11
  • bymyself11
  • 2016年12月21日 16:31
  • 508

Android输入框带删除按钮的自定义View

package com.aiitec.widgets; import android.content.Context; import android.graphics.Bitmap; import ...
  • sinat_17623745
  • sinat_17623745
  • 2016年08月11日 16:54
  • 531

Android EditText获得焦点时边框颜色改变

第一步:为了更好的比较,准备两个一模一样的EditText(当Activity启动时,焦点会在第一个EditText上,如果你不希望这样只需要写一个高度和宽带为0的EditText即可避免,这里就不这...
  • abc13939746593
  • abc13939746593
  • 2012年10月25日 14:12
  • 1311

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

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

android 自定义toast停留时间

Toast类 //首先定义全局变量mToast已经显示和隐藏函数 private Toast mToast; // 隐藏toast信息框常量 public static ...
  • snn1410
  • snn1410
  • 2016年05月30日 16:04
  • 2749

计算网页停留时间的平均时长

需求:现在有好多用户访问某个网页的停留时间,要计算平均时长。求均值是不太合理的,因为有的时间特别的长,这样的时间应该是噪音数据,这样计算的均值感觉就偏大。我感觉应该先找到事件的分布,然后根据分布计算它...
  • familyshizhouna
  • familyshizhouna
  • 2017年06月15日 16:58
  • 1080

android 同步监听输入框,以及电话号码正则表达式!

 下面这段程序主要为了实现以下三个功能:  一、同步监听文本输入框的变化,默认继承以下三个方法,分别监听文本改变前、中、后;  二、同时用正则表达式判断输入的电话号码是否合法;  三、最后在activ...
  • boyupeng
  • boyupeng
  • 2011年05月13日 18:56
  • 11295
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:editView 输入框停留的时间
举报原因:
原因补充:

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