相关疑难解决方法(0)

Android - 在EditText中处理"Enter"

我想知道是否有办法处理用户Enter在键入时按下EditText,例如onSubmit HTML事件.

还想知道是否有一种方法可以操作虚拟键盘,使"完成"按钮被标记为其他东西(例如"Go")并在单击时执行某个操作(再次,如onSubmit).

android textview android-edittext

433
推荐指数
15
解决办法
34万
查看次数

带有完成操作按钮的多行EditText

是否有可能同时拥有一个EditText具有android:inputType="textMultiLine"集合的小部件android:imeOptions="actionDone"

我想要一个多行编辑框,键盘上的动作按钮完成,而不是回车(回车),但它似乎没有工作..

提前致谢

android

97
推荐指数
8
解决办法
6万
查看次数

Android imeOptions ="actionDone"无效

我正在尝试获取Android应用程序的登录屏幕,到目前为止这是我的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">


    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:orientation="vertical">

        <EditText
            android:id="@+id/username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Username"
            android:inputType="text"
            android:singleLine="true"
            android:imeOptions="actionNext">

            <requestFocus />
        </EditText>

        <EditText
            android:id="@+id/password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Password"
            android:inputType="textPassword"
            android:singleLine="true"
            android:imeOptions="actionDone"  />

        <Button
            android:id="@+id/buttonLaunchTriage"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="@string/login" />
    </LinearLayout>



</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它时,键盘显示正确的键,但是当我在输入密码后尝试按完后,没有任何反应.我用它来处理按钮按下:

private void setupLoginButton() {
    Button launchButton = (Button) findViewById(R.id.buttonLaunchTriage);
    launchButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            EditText username = (EditText) findViewById(R.id.patient_start_userName_value);
            EditText password = (EditText) findViewById(R.id.patient_start_password_value);

            try {
                if(TriageApplicationMain.validateUser(username.getText().toString(),password.getText().toString(),getApplicationContext()))
                {
                Toast.makeText(StartActivity.this,
                        "Launching Triage Application", Toast.LENGTH_SHORT)
                        .show();
                startActivity(new …
Run Code Online (Sandbox Code Playgroud)

android imeoptions

31
推荐指数
5
解决办法
4万
查看次数

onEditorAction()中的null keyevent和actionid = 0(Jelly Bean/Nexus 7)

我有一个编辑文本,在我的应用程序中用作搜索框.在我的Nexus 7上的Jelly Bean中,当我在正在监听的文本框中输入内容并点击时,输入KeyEvent = null并将ActionId = 0传递给onEditorAction()方法.有人遇到过这种情况么?我认为这可能是一个错误.

在下面的第二个if语句中,我得到一个空指针,因为actionId = 0和KeyEvent = null;

// Search field logic.
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
    Log.d(TAG, "onEditorAction");
    if (event != null && event.getAction() != KeyEvent.ACTION_DOWN)
        return false;
    if (actionId == EditorInfo.IME_ACTION_SEARCH
            || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
              .....Do some stuff();
     }
}
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-4.2-jelly-bean

24
推荐指数
2
解决办法
1万
查看次数

如何以编程方式设置一些imeOptions

我有FrameLayout容器,我想动态添加EditText.我需要设置两个imeOptions:IME_ACTION_DONEIME_FLAG_NO_EXTRACT_UI在这同一时间,但我有问题,该怎么办呢编程.我的解决方案覆盖了我imeOptions(我现在这是很好的行为:)但我尝试了一切)

我的第二个问题:如何以编程方式创建EditText后设置焦点?这种方法editText.requestFocus();对我不起作用.我想打开键盘后postCardContainer.addView(editText);

  postCardContainer.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            params.topMargin = (int) event.getY()-50;
            params.leftMargin = (int) event.getX()-50;

            EditText editText = new EditText(NewPostcardActivity.this);
            editText.setSingleLine();
            editText.setBackgroundResource(R.color.transparent);
            editText.requestFocus();
            editText.setLayoutParams(params);
            editText.setCursorVisible(true);
            editText.setImeOptions(EditorInfo.IME_ACTION_DONE);
            editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);

            postCardContainer.addView(editText);

            return false;
        }
    });
Run Code Online (Sandbox Code Playgroud)

谢谢

android android-layout android-edittext

10
推荐指数
1
解决办法
5762
查看次数

如何故意在EditText中转到新行?

我正在创建一个提供聊天功能的应用程序.屏幕上有一个EditText,我在其上设置了OnKeyListener.每当用户在键入消息后按"Enter"键时,消息就会在屏幕上显示.它工作正常.这是我的EditText:

<EditText android:id="@+id/chatMessageField"
    android:layout_height="wrap_content" android:layout_width="fill_parent"
    android:layout_gravity="center_horizontal|center_vertical"
    android:layout_marginRight="5dip" android:layout_marginLeft="5dip"
    android:maxLines="2" android:minLines="1" android:scrollbars="vertical"
    android:hint="@string/chatMessageHintText" android:textColorHint="#3b64a8">
</EditText>
Run Code Online (Sandbox Code Playgroud)

问题是当用户想要在EditText包装文本并转到新行之前转到新行.现在,如果用户想要转到新行并按"Enter"键,则会发送消息.

在一些聊天消息中,我已经看到按下"Shift + Enter"(或任何其他键组合)同时将用户带到新行.我们如何检测Android中同时按下的"Shift + Enter"(或任何其他键组合)键?有没有办法在Android中实现此功能?

android android-edittext

5
推荐指数
2
解决办法
7789
查看次数

在数据绑定中使用键盘上的完成按钮

我试图使用软键盘的完成按钮通过数据绑定激活方法.就像onClick一样.有没有办法做到这一点?

例:

<EditText               
    android:id="@+id/preSignUpPg2EnterPhone"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"       
    onOkInSoftKeyboard="@{(v) -> viewModel.someMethod()}"
    />
Run Code Online (Sandbox Code Playgroud)

onOkInSoftKeyboard不存在...有什么东西可以创建这种行为吗?

谢谢!

android android-databinding

3
推荐指数
3
解决办法
3509
查看次数

从软键盘上按"DONE"键

我正在寻找可以从软键盘上按下"完成"按钮的代码.按下完成按钮后,我需要将按钮状态更改为启用,然后用户可以继续执行下一个活动.

我在stackoverflow上找到了这段代码,但我没有错误地实现它.你能帮我吗?

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

editText.setOnEditorActionListener(new OnEditorActionListener() {
   @Override
   public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
       if (actionId == EditorInfo.IME_ACTION_DONE) {
           // do your stuff here
       }
       return false;
}
});
Run Code Online (Sandbox Code Playgroud)

这是整个.java文件

package com.example.start201;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class FirstActivity extends Activity {

   private EditText editText;

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState); …
Run Code Online (Sandbox Code Playgroud)

java android

0
推荐指数
1
解决办法
5697
查看次数