android记事本全选删除,android项目 之 记事本(7)----- 手写功能之删除、恢复和清空...

上一节,为记事本添加了手写的功能,但是没有实现底部按钮的各种功能,这节就先实现撤销,恢复和清空的功用。

因为不会录制屏幕成gif图片,所以就以图片形式给出吧,不是很形象,凑合着看:

75ed07408ac83c94dc7a1d2d6a0e188d.png65e01a0ea403abb5d856c468a7a3368b.png

3e74b554cb1ff798aeb09942eae61d16.png

ef85514ea851a0d05d6b102a673a4972.pngec835be6ffa0d6fb621657a15bfe7931.png

显然,需要为底部GridView的添加item单击事件:

private GridView paint_bottomMenu;

paint_bottomMenu = (GridView)findViewById(R.id.paintBottomMenu);

paint_bottomMenu.setOnItemClickListener(new MenuClickEvent());

下面就是在监听器中实现具体的功能:

1.删除功能

1)取得最后一个字的位置

2)将第0个到倒数第二个位置的所有内容设置为自定义editText的内容,间接实现删除最后一个字的功能

3)更新最后一个字的位置为删除后的最后一个字的位置

3)将删除的字存储在列表中(其实存储在栈中更好,因为是先进后出),用于恢复。

代码如下:

private ArrayList deleteChar = new ArrayList();

//删除

case 2:

Editable editable = et_handwrite.getText();

//找到最后一个手写字,并删除最后一个手写字

int selectionEnd = et_handwrite.getSelectionEnd();

System.out.println("end = "+ selectionEnd);

if(selectionEnd < 1){

et_handwrite.setText("");

}

else if(selectionEnd == 1){

et_handwrite.setText("");

CharSequence deleteCharSeq = editable.subSequence(0,1);

deleteChar.add(deleteCharSeq);

}

else{

System.out.println("delete");

CharSequence charSeq = editable.subSequence(0, selectionEnd - 1);

CharSequence deleteCharSeq = editable.subSequence(selectionEnd - 1,selectionEnd);

et_handwrite.setText(charSeq);

et_handwrite.setSelection(selectionEnd - 1);

//将删除的字存储到列表中,以便恢复使用

deleteChar.add(deleteCharSeq);

}

break;

2. 恢复功能:

1)取出删除列表中的最后一个元素

2)将取出的元素添加在自定义editText的末尾

3)从删除列表中删掉最后一个元素

//恢复

case 3:

//取出删除列表中的元素

int length = deleteChar.size();

if(length > 0){

et_handwrite.append(deleteChar.get(deleteChar.size()-1));

deleteChar.remove(deleteChar.size()-1);

}

break;

3.清空功能:                         1)创建Dialog,弹出是否删除提示

2)为Dialog添加PositiveButton和setNegativeButton

3)在PositiveButton单击事件中,设置自定义editText的内容为空

//清空屏幕

case 4 :

if(et_handwrite.getSelectionEnd() > 0){

AlertDialog.Builder builder = new Builder(HandWriteActivity.this);

builder.setTitle("您确定要清空所有吗?");

builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

et_handwrite.setText("");

dialog.cancel();

}

});

builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.cancel();

}

});

Dialog dialog = builder.create();

dialog.show();

}

break;

这样,手写的三个基本功能就已实现,对于设置画笔的粗细和颜色,以后再做。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值