【问题标题】:Keyboard next button when using include tag使用包含标签时的键盘下一步按钮
【发布时间】:2017-10-31 06:38:57
【问题描述】:

我已经看到/尝试过以下问题,但我的不一样:


首先,我有一个CardView,其中我有一个EditText,如下所示:

<RelativeLayout
    android:id="@+id/topCard"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/myCard"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"           
        android:clickable="false"
        android:foreground="?android:attr/selectableItemBackground"
        android:orientation="horizontal"
        app:cardCornerRadius="5dp"
        app:cardElevation="3dp"
        app:cardPreventCornerOverlap="false"
        app:cardUseCompatPadding="true">

        <RelativeLayout
            android:layout_width="5dp"
            android:layout_height="match_parent"
            android:background="#26c2ef">

        </RelativeLayout>


        <RelativeLayout
            android:id="@+id/cardTopTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="5dp">


            <TextView
                android:id="@+id/lessonTitleHeading"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginStart="10dp"
                android:layout_marginTop="10dp"
                android:text="Please provide a name:"
                android:textColor="#000000"
                android:textSize="18sp" />

            <ImageView
                android:id="@+id/horiLine"
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_below="@+id/lessonTitleHeading"
                android:layout_marginEnd="10dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginStart="10dp"
                android:background="#60000000" />

            <EditText
                android:id="@+id/noteEditText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/horiLine"
                android:layout_marginEnd="10dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginStart="10dp"
                android:layout_marginTop="5dp"
                android:background="@android:color/transparent"
                android:hint="Enter name here..."
                android:imeOptions="actionNext" />


        </RelativeLayout>


    </android.support.v7.widget.CardView>


</RelativeLayout>

然后我使用 include 在另一个布局中膨胀,如下所示:

<include
    android:id="@+id/lessonTitle"
    layout="@layout/activity_notes_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    />

在我的 Activity 课程中,我执行以下操作:

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

    View tvOne = findViewById(R.id.tvOne);
    View tvTwo = findViewById(R.id.tvTwo);
    View tvThree = findViewById(R.id.tvThree);
    View tvFour = findViewById(R.id.tvFour);

    final TextView tvOne = (TextView)vLessonTitle.findViewById(R.id.lessonTitleHeading);
    final EditText etOne = (EditText) vLessonTitle.findViewById(R.id.noteEditText);

    TextView tvTwo = (TextView)vlessonProbStu.findViewById(R.id.lessonTitleHeading);
    final EditText etTwo = (EditText) vlessonProbStu.findViewById(R.id.noteEditText);

    TextView tvThree = (TextView)vLessonWorkedOn.findViewById(R.id.lessonTitleHeading);
    final EditText etThree = (EditText) vLessonWorkedOn.findViewById(R.id.noteEditText);

    TextView tvFour = (TextView)vlessonWhatStudShouldWorkOn.findViewById(R.id.lessonTitleHeading);
    final EditText etFour = (EditText)vlessonWhatStudShouldWorkOn.findViewById(R.id.noteEditText);

    tvOne.setText("This is the first CardView:");
    etOne.setHint("Enter Title Here...");

    tvTwo.setText("This is the second CardView:");
    etTwo.setHint("Enter Text Here...");

    tvThree.setText("This is the third CardView:");
    etThree.setHint("Enter Text Here...");

    tvFour.setText("This is the fourth CardView:");
    etFour.setHint("Enter Text Here...");

    //I tried this, but it didn't work...
    etOne.setOnKeyListener(new View.OnKeyListener() {

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // If the event is a key-down event on the "enter" button
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER))
            {
                // Perform action on Enter key press
                etLessonTitle.clearFocus();
                etLessonProbStu.requestFocus();
                return true;
            }
            return false;
        }
    });

}

布局现在看起来像这样:

此时我有一堆CardViews 和EditTexts 在彼此下方,就像上面一样。我想使用键盘上的下一个按钮转到下一个CardsViews EditText

如果您查看我上面的 Activity 类,我尝试在当前的 EditText 中使用 setOnKeyListenerclearFocus,然后在下一个 EditText 中使用 requestFocus,但这没有用。

有什么想法可以实现这一点吗?

【问题讨论】:

  • 尝试将 android:inputType="text" 设置为您的 Editext
  • @NileshRathod LOL,非常感谢你,如果你回答我会接受。

标签: java android android-layout android-edittext


【解决方案1】:

试试这个你需要设置 android:inputType="" 到你的 Editextandroid:imeOptions="actionNext"

<EditText
    android:id="@+id/noteEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/horiLine"
    android:layout_marginEnd="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginStart="10dp"
    android:layout_marginTop="5dp"
    android:background="@android:color/transparent"
    android:hint="Enter name here..."
    android:inputType="text" // specifies your input type here  
    android:imeOptions="actionNext" />

【讨论】:

  • @ClassA 很乐意帮助您享受编码的乐趣
  • 我还有一个问题,你不介意吧.. 是否可以同时提供返回按钮和下一步按钮?
  • 是的,但你的问题我不明白@ClassA
  • 让我换个说法,是否可以同时在键盘上显示输入和下一步按钮?
  • 我认为不是@ClassA
猜你喜欢
  • 2012-07-18
  • 1970-01-01
  • 2021-04-20
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2020-07-05
相关资源
最近更新 更多