setOnKeyListener onkey 删除键盘上的更新方法,或如何在 android 中使用击键



我有几个可以从用户那里获取文本的textEdits,但是我还制作了一个按钮,用于将信息更新到数据库。

如何进行设置,以便用户可以键入一些文本,并且仅在他们按下我为活动制作的"更新"按钮时更新,而不是在用键盘点击"返回"或"完成"时更新。

我正在尝试做的是删除通过这些其他方式更新信息的功能,例如键盘上的"下一步"或"返回"按钮。 这将留下使用页面上的自定义更新按钮执行此操作的唯一方法。

一个建议是消耗基斯托克斯。 通过使用类似 consume() 方法的东西。 有什么想法吗?

如果这是不可能的,那么我将按原样忍受它。

下面是其中一个编辑文本代码的示例:

     // 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;
            }
        });

发现它完全按照需要工作而没有错误。 真的不需要太多的来解决这个变化简单的问题。 几乎不需要发布原始问题。

// 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;
                }
            });

在前面描述的更新按钮中添加了点击监听器,以更新标题和描述编辑文本

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");
            }
        });

最新更新