你可以同时拥有两个听众吗?
我有两个EditText,定义如下
<EditText
android:id="@+id/editTextnum"
android:layout_width="0sp"
android:layout_height="50dp"
android:paddingLeft="10dp"
android:imeOptions="actionDone"
android:background="@drawable/back"
android:textSize="30dp"
android:ems="10"
android:textColor="#000000"
android:layout_weight="1"
android:inputType="number">
<EditText
android:id="@+id/editTextnum2"
android:layout_width="0sp"
android:layout_height="50dp"
android:paddingLeft="10dp"
android:layout_weight="1"
android:background="@drawable/back"
android:ems="10"
android:imeOptions="actionDone"
android:inputType="number"
android:textColor="#000000"
android:textSize="30dp">
当我获得任何一个焦点时,它会弹出一个软数字小键盘,这样我就可以输入一个数字,然后按完成。在关注EditTexnum 2
的同时按下完成后运行以下代码//Listner and result in MainActivity.java
db = new DBAdapter(this);
editText = (EditText) findViewById(R.id.editTextnum2);
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
EditText mEdit = (EditText)findViewById(R.id.editTextnum2);
if(mEdit.length()==0){
Toast.makeText(getBaseContext(), "No Fault Reference Number Entered", Toast.LENGTH_LONG).show();
}
else{
db.open();
Cursor c = db.getAsset2(mEdit.getText());
if (c.moveToFirst())
DisplayContact(c);
else
Toast.makeText(getBaseContext(), "No Fault Reference found", Toast.LENGTH_LONG).show();
}
db.close();
这适用于editTextnum2但editTextnum不会做任何事情因为没有监听器
我已经尝试过复制文本并更改了监听器,但它正在投掷错误
基本上我正在做的是他们是搜索sqlite数据库的搜索框,但他们搜索两个不同的列
知道我是怎么做到的吗?
任何帮助表示赞赏
标记
答案 0 :(得分:1)
editText = (EditText) findViewById(R.id.editTextnum2);
您将editText
绑定到R.id.editTextnum2
确保将其绑定为
的其他文本框another_editText_var = (EditText) findViewById(R.id.editTextnum);
并将监听器注册为another_editText_var.setOnEditorActionListener(..)
答案 1 :(得分:0)
不是......完全确定你想要实现的目标,但设置两个监听器取决于它是什么样的监听器。 edittext可以有多个TextWatcher侦听器。像这样
EditText edit = (EditText) findViewById(R.id.editTextnum);
edit.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
edit.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
将调用两个侦听器。