安卓的记事本应用开发日志(三)

如题:
响应返回键。

效果

安卓的记事本应用开发日志(三)_第1张图片

解决:
Activity中重写onKeyDown方法,当用户按下返回按键,在该方法中返回true的时候,程序退出;在该方法中返回false的时候,程序不退出。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
     
    if(keyCode == KeyEvent.KEYCODE_BACK ){
     
        boolean flag = checkboxListener.pressBackWhenShowCheckBox();
        if(flag) return false;
        else return super.onKeyDown(keyCode, event);
    }
    return super.onKeyDown(keyCode, event);
}

至于checkboxListener,是自定义的一个接口,用于监听是否当前的ListView中的CheckBox是否处于可见状态。该类中的该接口的定义和初始化接口如下:

private static CheckboxShowAndPressBack checkboxListener;

public static void setCheckboxShowAndPressBack(CheckboxShowAndPressBack checkboxShowAndPressBack){
     
    checkboxListener = checkboxShowAndPressBack;
}

该接口定义如下:

public interface CheckboxShowAndPressBack {
     
    // 自定义一个接口,用于判断ListView中是否设置显现CheckBox
    boolean pressBackWhenShowCheckBox();
}

然后,在实现ListViewAdapter的类中,实现CheckboxShowAndPressBack接口,实现方法如下:

@Override
public boolean pressBackWhenShowCheckBox() {
     
    // 检查一次,当checkbox显示,就返回true,那么在press back时候,就不退出程序;否则,退出程序
    boolean flag = false;
    for (int j = 0; j < lists.size(); j++) {
     
        if(lists.get(j).isShowCheckbox()) {
     
            flag = true;
            lists.get(j).setShowCheckbox(false);   // 设置lists中的所有的isShowChexkbox为false。
        }
    }
    listView.setAdapter(new NoteItemAdapter(root.getContext(), R.layout.note_list_item_layout, lists));
    return flag; // 返回标志
}

完整代码,已上传CSDN,链接如下:地址


其他:
安卓的记事本应用开发日志(二) – 简单页面实现。
安卓的记事本应用开发日志(一) – 页面草图构建。

你可能感兴趣的:(Android开发,Android响应返回键,记事本开发日志)