我已经显示了一个gridview,其项目是textview和edittext.Now,如何实现我点击gridview项目和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中。
有样品吗?
答案 0 :(得分:1)
从EditText
获取AdapterView
并设置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);
}
}
});
修改强>
将focusable
和focusableInTouchMode
设为false
EditText
,如下所示:
android:focusable="false"
android:focusableInTouchMode="false"
答案 1 :(得分:0)
使用gridView时,TextView和EditText不应该有标志
android:singleLine="true"
除非你想要一个外国焦点行为,否则你可以使用
android:lines="1",
不要问我为什么!它是那种android OS bug,
希望这会有所帮助,