Bud*_*ril 7 events android paste
有没有办法在我的应用程序中捕获粘贴事件?当我在editText上长按并从上下文菜单中选择粘贴时,我必须做一些事情.谢谢
创建位置为“粘贴”的 menu.xml
将 contextMenu 注册到您的 EditText
EditText et=(EditText)findViewById(R.id.et);
registerForContextMenu(et);
Run Code Online (Sandbox Code Playgroud)
创建上下文菜单
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
menu.setHeaderTitle("title");
}
Run Code Online (Sandbox Code Playgroud)
创建方法菜单 onClick
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
switch (item.getItemId()) {
case R.id.paste:
break;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
您应该在接收粘贴操作的控件上实现TextWatcher侦听器.
该TextWatcher类提供的方法来处理的OnChange,BeforeChange任何可编辑的改动后.例如:
private void pasteEventHandler() {
((EditText)findViewById(R.id.txtOutput))
.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
Log.d(TAG, "Text changed, refreshing view.");
refreshView();
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8670 次 |
| 最近记录: |