我有一个listview。在每个项目中都有一个textview 和一个edittext .. 我已经遵循了这个,但它并没有帮助我很多。然后尝试了这个但仍然没有帮助。我已经为这样的listview 项目声明了一个edittext。
<EditText
android:id="@+id/dhsv1"
android:layout_width="15dp"
android:layout_height="wrap_content"
android:singleLine="true"
android:editable="true"
android:maxLength="2"
android:focusable="false"
android:focusableInTouchMode="true"
android:imeOptions="flagNoExtractUi|actionDone"
android:inputType="textVisiblePassword|number" />
然后在getview方法中我做了这个
number.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
number.setFocusableInTouchMode(true);
number.setFocusable(true);
return false;
}
});
之后,我什至在 listviewonitemclick 内完成了
number.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
number.setFocusableInTouchMode(true);
number.setFocusable(true);
number.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId==EditorInfo.IME_ACTION_DONE){
number.clearFocus();
}
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(number.getWindowToken(), 0);
}
return false;
}
});
return false;
}
});
现在很多人可能想知道为什么我在getview和listview onitemclick中都写了number.setontouchlistener。即使我没有找到任何正确的逻辑,但事情是它对我有用。现在实际的问题是当我点击任何edittext(即数字在我的情况下)它获得焦点,但它不允许选择或取消选择它自己的项目或列表视图中的任何其他项目。即使我已经通过编码清除了焦点。请任何人提供一些好的解决方案..