在我的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.我只需要在按下时一次发送一个字符,不需要最终的文本字符串.
我曾尝试使用EditTextwith onKeyPress,但我遇到了问题,没有用软键盘按键,TextWatcher这不是一个好选择,因为我需要每次按键.是否有任何解决方案可以知道所有按键(包括后退,移位,输入......)?
我有一个EditText盒子,必须允许用户输入最多7个数字和两个小数位.输入七位数后,不应再允许添加一位数,但我可能允许最多2位小数.我使用十进制过滤器2位小数,这个代码用XML
android:maxLength="7"
android:imeOptions="actionDone"
android:inputType="numberDecimal"
Run Code Online (Sandbox Code Playgroud)
但EditText允许enter8位数.怎么解决这个问题?
我正在使用这个应用程序,用户可以在autoCompleteTextView中输入一个位置,它会根据此处描述的Google Places Api建议位置.
但是,如果用户在一段时间内停止输入,我想通过仅发送请求来限制应用程序发送的请求数量.有谁知道如何做到这一点?
我有一个Edit Text数字只能介于两者之间0-59,没有其他数字会输入Edit Text,我试过text-watcher但没有成功.任何的想法?
12-26 14:59:39.715: E/AndroidRuntime(19494): FATAL EXCEPTION: main
12-26 14:59:39.715: E/AndroidRuntime(19494): java.lang.StackOverflowError
12-26 14:59:39.715: E/AndroidRuntime(19494): at android.view.ViewGroup.findViewTraversal(ViewGroup.java:2765)
12-26 14:59:39.715: E/AndroidRuntime(19494): at android.view.View.findViewById(View.java:10442)
12-26 14:59:39.715: E/AndroidRuntime(19494): at android.view.ViewGroup.findViewTraversal(ViewGroup.java:2765)
12-26 14:59:39.715: E/AndroidRuntime(19494): at android.view.View.findViewById(View.java:10442)
12-26 14:59:39.715: E/AndroidRuntime(19494): at android.view.ViewGroup.findViewTraversal(ViewGroup.java:2765)
12-26 14:59:39.715: E/AndroidRuntime(19494): at android.view.View.findViewById(View.java:10442)
12-26 14:59:39.715: E/AndroidRuntime(19494): at android.view.ViewGroup.findViewTraversal(ViewGroup.java:2765)
12-26 14:59:39.715: E/AndroidRuntime(19494): at android.view.View.findViewById(View.java:10442)
12-26 14:59:39.715: E/AndroidRuntime(19494): at android.view.ViewGroup.findViewTraversal(ViewGroup.java:2765)
12-26 14:59:39.715: E/AndroidRuntime(19494): at android.view.View.findViewById(View.java:10442)
12-26 14:59:39.715: E/AndroidRuntime(19494): at android.view.ViewGroup.findViewTraversal(ViewGroup.java:2765)
12-26 14:59:39.715: E/AndroidRuntime(19494): at …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中我输入对话框中的电话号码,在编辑文本中输入手机号码自动添加到" - "示例:999-999-9999这个电话号码格式
final EditText text= (EditText)myDialog.findViewById(com.fitzgeraldsoftware.mobitrack.presentationlayer.R.id.Tv2);
text.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
boolean flag = true;
String eachBlock[] = text.getText().toString().split("-");
// Log.v("11111111111111111111","aa"+flag);
for (int i = 0; i < eachBlock.length; i++)
{
Log.v("11111111111111111111","aa"+i);
if (eachBlock[i].length() > 3)
{
// Log.v("11111111111111111111","cc"+flag);
flag = false;
}
}
if (flag) {
// Log.v("11111111111111111111","dd"+flag);
text.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL)
// Log.v("11111111111111111111","ee"+keyDel);
keyDel = 1; …Run Code Online (Sandbox Code Playgroud) 这是我的自定义列表适配器,如何使用编辑文本在自定义列表适配器中实现搜索功能。我尝试了很多方法来实现搜索功能
public class ListAdapter extends BaseAdapter {
public ArrayList<Users> listDataContainers = new ArrayList<>();
ListAdapter(ArrayList<Users> listDataContainers) {
this.listDataContainers = listDataContainers;
}
@Override
public int getCount() {
return listDataContainers.size();
}
@Override
public User getItem(int arg0) {
return listDataContainers.get(arg0);
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int pos, View arg1, ViewGroup arg2) {
if (arg1 == null) {
LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
arg1 = inflater.inflate(R.layout.listitem_layout, arg2, false);
}
TextView pa_name = (TextView) arg1.findViewById(R.id.textName);
TextView pa_date = …Run Code Online (Sandbox Code Playgroud) 我有一个自定义ListView,其中包含一个TextView(Of数字)和一个EditText.在标题之外我有一个TextView.
我的任务是,当我要在任何editText中输入任何数字然后在标题 textView上它应该显示editText的乘法值*textView的ListView的值.
然后,如果我在任何其他editText中输入任何其他数字,那么计算将与前一个相同,比如说editText的乘法值*textView ListView的行值+ editText的乘法值*textView ListView行的值并显示这个标题textView上的新值.如果更改任何editText的值,那么旧位置的先前值应该在相应位置的新值上更新. 我知道所有这些工作将在textwatcher中发生,但不知道如何?你能帮助我吗???