在我的Android项目中,我不得不将TextChangedListener(TextWatcher)添加到编辑文本视图中.它有三个部分.
onTextChanged() beforeTextChanged() afterTextChanged()这三者的不同之处是什么?我不得不在关键的lisner上实现一个表的搜索,对于我的情况,这三个看起来都是一样的.他们也运作相同.当我输入产品名称的一部分时,表格会重新绘制,只包含那些包含输入文本的产品.但是我使用了这个afterTextChanged()部分.我的代码是
EditProduct.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
// System.out.println("onTextChanged"+s);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
// System.out.println("beforeTextChanged"+s);
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// System.out.println("afterTextChanged"+s);
String new_prx = s.toString();
System.out.println(s);
mini_productList = new ArrayList<Product>();
// mini_productList
int count = 0; …Run Code Online (Sandbox Code Playgroud) 在我的EditText领域,我想给一些min文本作为强制,最大文本作为限制,有没有办法实现呢?
如果要键入文本,则数字计数必须减少.我该怎么办?
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="24dp"
android:maxLength="175"
android:ems="10" />
Run Code Online (Sandbox Code Playgroud)
这是我添加的activity.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home_layout);
System.out.println(PRAYER_CATEGORY.length);
tvPrayer = (TextView) findViewById(R.id.mystate);
spinnerPrayers = (Spinner) findViewById(R.id.spinnerstate);
ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, PRAYER_CATEGORY);
adapter_state
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerPrayers.setAdapter(adapter_state);
value=(EditText)findViewById(R.id.editText1);
value
.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if (value.getText().toString().trim()
.length() < 3) {
value.setError("Failed");
} else {
value.setError(null);
}
}
else {
if (value.getText().toString().trim()
.length() < 3) {
value.setError("Failed"); …Run Code Online (Sandbox Code Playgroud) 而不是5118710,它应该是511-8710.我想在用户输入EditText中已有3位数的用户之后添加一个破折号.EditText的最大长度仅为7位数.
在我弄清楚上述问题之后,我再次陷入编码困境.当我已经输入3位数字时,它会附加破折号(这就是我想要发生的事情),但我的问题是接下来的3位数字也会附加破折号(如下所示511-871-) ...请帮助我.谢谢!
txt_HomeNo.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
boolean flag = true;
String eachBlock[] = txt_HomeNo.getText().toString().split("-");
for (int i = 0; i < eachBlock.length; i++) {
if (eachBlock[i].length() > 3) {
flag = false;
}
}
if (flag) {
txt_HomeNo.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL)
keyDel = 1;
return false;
}
});
if (keyDel …Run Code Online (Sandbox Code Playgroud) 我想在用户将焦点从edittext更改为另一个项目时更新EditText我想要检查edittext的内容,例如,如果大于10,则将其更改为10.
我该怎么做
我有一个编辑文本。我想在其中输入小数值。
那是我输入第一个数字的时候。它应该是这样的:.01
然后我输入了第二个数字。应该是这样的:.12
然后是第三个。应该是这样的:1.23
它会像这样......如何实现这个场景。任何想法?