我已经显示了一个gridview,它的item是textview和edittext。现在,如何实现我点击gridview item,edittext获得焦点的功能?
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
如何覆盖这个函数? 我以前试过:
((EditText)gridview.getChildAt(position).findViewById(R.id.grid_edittext)).requestFocus();
还有:
((ViewGroup)gridview.getChildAt(position)).getChildAt(1).requestFocus();
添加了一个System.out.printlen("hello"); 在 onitemclick 函数中,但它没有显示在 logcat 中。
有 sample 吗??
最佳答案
从 AdapterView
获取 EditText
并设置 requestFocus()
如下。这可能是工作。
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
EditText edittext = (EditText) view.findViewById(R.id.grid_edittext);
edt.setFocusable(true);
edittext.setFocusableInTouchMode(true);
if (edittext.requestFocus()) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edittext, InputMethodManager.SHOW_IMPLICIT);
}
}
});
编辑:
为 EditText
设置 focusable
和 focusableInTouchMode
为 false
,如下所示:
android:focusable="false"
android:focusableInTouchMode="false"
关于android - 单击 gridview 项目和 editext 获得焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25519896/