如何在android中从listview的listitem捕捉“焦点输出”

如何在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

我正在实现一个listview,它将在焦点超出listitem时保存该listitem。我怎样才能做到这一点?我尝试使用onFocusChangeListener,但它不起作用。有人有主意吗?下面是我在ListAdapter中的代码

@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;
        }
    }
}