您的位置:首页 > 移动开发 > Android开发

Android 基础控件- EditText

2017-03-07 16:29 281 查看

需求: 实现文本的撤销操作。

主要的代码:

mEditText = ((EditText) findViewById(R.id.editText));

mPerformEdit = new PerformEdit(mEditText){

@Override

protected void onTextChanged(Editable s) {

//文本发生改变,可以是用户输入或者是EditText.setText触发.(setDefaultText的时候不会回调)

super.onTextChanged(s);

}

};     mPerformEdit.setDefaultText("这是初始值,不能撤销的值");

}


监听操作:

mPerformEdit.undo() 撤销

mPerformEdit.redo() 复原

mPerformEdit.clearHistory() 清空历史

Demo:

public class MainActivity extends AppCompatActivity {

private EditText mEditText;
private PerformEdit mPerformEdit;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mEditText = ((EditText) findViewById(R.id.editText));
mPerformEdit = new PerformEdit(mEditText){
@Override
protected void onTextChanged(Editable s) {
//文本发生改变
super.onTextChanged(s);
}
};

mPerformEdit.setDefaultText("default");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_editor,menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if(itemId ==R.id.action_undo){
mPerformEdit.undo();//撤销操作
return true;
}else if(itemId == R.id.action_redo){
mPerformEdit.redo();//复原
return true;
}else if(itemId == R.id.action_clear){
mPerformEdit.clearHistory();
return true;
}
return super.onOptionsItemSelected(item);
}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android