我有几个textEdits可以从用户那里获取文本,但是我还创建了一个按钮,用于将信息更新到数据库。
我该如何设置它以便用户可以键入一些文本,只有当他们按下我为活动所做的“更新”按钮时更新,而不是在用键盘点击“返回”或“完成”时更新
我想要做的是删除通过键盘上的“下一个”或“返回”按钮等其他方式更新信息的功能。这将通过使用页面上的自定义更新按钮留下唯一的方法。
一个建议就是消费密钥。通过使用像consume()方法的东西。任何想法?
如果不可能,那么我会按原样使用它。
以下是editTexts代码之一的示例:
// get the text typed in the description and allow user to edit the text information for title
titleText.setOnKeyListener(new EditText.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)){
String titleTemp = titleText.getText().toString();
Intent i = getIntent();
Bundle extras = i.getExtras();
String filename2 = extras.getString("filename");
String selection2 = MediaStore.Images.Media.DATA + "='" + filename +"'";
ContentValues newValue = new ContentValues();
newValue.put(MediaStore.Images.Media.TITLE, titleTemp);
getContentResolver().update(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, newValue, selection2, null);
Toast.makeText(Editor.this, "Updated Title to: " + titleTemp, Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
答案 0 :(得分:0)
发现它在没有错误的情况下完全符合要求。真的没有太多需要解决这个不同的简单问题。几乎不需要发布原始问题。
// get the text typed in the description and allow user to edit the text information for title
titleText.setOnKeyListener(new EditText.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)){
String titleTemp = titleText.getText().toString();
// Intent i = getIntent();
// Bundle extras = i.getExtras();
// String filename2 = extras.getString("filename");
// String selection2 = MediaStore.Images.Media.DATA + "='" + filename +"'";
// ContentValues newValue = new ContentValues();
// newValue.put(MediaStore.Images.Media.TITLE, titleTemp);
// getContentResolver().update(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, newValue, selection2, null);
// Toast.makeText(Editor.this, "Updated Title to: " + titleTemp, Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
//将clicklistener添加到前面描述的更新按钮以更新标题和描述edittexts
updateIt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String titleTemp = titleText.getText().toString();
String commentsTemp = commentsText.getText().toString();
Intent i = getIntent();
Bundle extras = i.getExtras();
String filename3 = extras.getString("filename");
String selection3 = MediaStore.Images.Media.DATA + "='" + filename3 +"'";
ContentValues newValue2 = new ContentValues();
newValue2.put(MediaStore.Images.Media.TITLE, titleTemp);
newValue2.put(MediaStore.Images.Media.DESCRIPTION, commentsTemp);
getContentResolver().update(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, newValue2, selection3, null);
Toast.makeText(Editor.this, "Updated Title to: " + titleTemp, Toast.LENGTH_SHORT).show();
Log.i(getClass().getSimpleName(), "Updated title");
//Toast.makeText(Editor.this, titleText.getText(), Toast.LENGTH_SHORT).show();
Toast.makeText(Editor.this, "Updated Description to: " + commentsTemp, Toast.LENGTH_SHORT).show();
Log.i(getClass().getSimpleName(), "Updated description");
}
});