如何在android中从listview的listitem捕捉“焦点输出”
我正在实现一个listview,它将在焦点超出listitem时保存该listitem。我怎样才能做到这一点?我尝试使用onFocusChangeListener,但它不起作用。有人有主意吗?下面是我在ListAdapter中的代码如何在android中从listview的listitem捕捉“焦点输出”,android,android-listview,focus,listitem,Android,Android Listview,Focus,Listitem,我正在实现一个listview,它将在焦点超出listitem时保存该listitem。我怎样才能做到这一点?我尝试使用onFocusChangeListener,但它不起作用。有人有主意吗?下面是我在ListAdapter中的代码 @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater)conte
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.listitem, parent, false);
Spinner elem1 = (Spinner)rowView.findViewById(R.id.elem1);
Spinner elem2 = (Spinner)rowView.findViewById(R.id.elem2);
TextView elem3 = (TextView)rowView.findViewById(R.id.elem3);
rowView.setOnFocusChangeListener(this);
return rowView;
}
@Override
public void onFocusChange(View view, boolean hasFocus) {
if(!hasFocus) {
// todo : save current list item.
Logger.debug(TAG, ">>> Focus out");
}
}
一种方法是使用另一个标志,比如布尔聚焦 然后:
谢谢,但那件事根本没被触发。
@Override
public void onFocusChange(View view, boolean hasFocus) {
if(hasFocus) {
focused = true;
}
if(!hasFocus) {
if (focused == true) {
// todo : save current list item.
Logger.debug(TAG, ">>> Focus out");
focused = false;
}
}
}