package com.ine.view.utility;
import com.ine.tool.IoCObj;
import android.text.Editable;
import android.text.Selection;
import android.text.Spannable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.widget.EditText;
import android.widget.Toast;
public class EditRegion
{
public static void setRegion(final LayoutInflater inflater,
final EditText et, final int MIN_MARK, final int MAX_MARK)
{
EditRegion.setRegion(inflater, et, MIN_MARK, MAX_MARK, null);
}
public static void setRegion(final LayoutInflater inflater,
final EditText et, final int MIN_MARK, final int MAX_MARK,
final IoCObj iocObj)
{
et.addTextChangedListener(new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count)
{
// if (start > 1)
// {
// if (MIN_MARK != -1 && MAX_MARK != -1)
// {
// int num = Integer.parseInt(s.toString());
// if (num > MAX_MARK)
// {
// et.setText(String.valueOf(MAX_MARK));
// } else if (num < MIN_MARK)
// {
// et.setText(String.valueOf(MIN_MARK));
// }
// if (null != iocObj)
// iocObj.beforeDone(et);
// return;
// }
// }
}
@Override
public void afterTextChanged(Editable s)
{
if (s != null && !s.equals(""))
{
if (MIN_MARK != -1 && MAX_MARK != -1)
{
int markVal = 0;
try
{
markVal = Integer.parseInt(s.toString());
} catch (NumberFormatException e)
{
markVal = 0;
}
if (markVal > MAX_MARK)
{
Toast.makeText(inflater.getContext(),
"不能超过" + MAX_MARK, Toast.LENGTH_SHORT)
.show();
et.setText(String.valueOf(MAX_MARK));
} else if (markVal < MIN_MARK)
{
et.setText(String.valueOf(MIN_MARK));
}
//IoCObj动作
if (null != iocObj)
iocObj.afterDone(et);
//将光标移至尾部
CharSequence text = et.getText();
if (text instanceof Spannable)
{
Spannable spanText = (Spannable) text;
Selection.setSelection(spanText, text.length());
}
return;
}
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after)
{
}
});
}
}
使用如:EditRegion.setRegion(inflater, et_set_price, 0, 200, new PriceIoCObj());