Android左右箭头键用作后退和上一个按钮

时间:2015-07-09 19:16:48

标签: java android android-fragments android-softkeyboard

我正在处理一个包含多个片段的应用程序。在One片段下,我有一些文本可编辑字段。每次用户点击此字段时,输入文本并单击左或右箭头键,通过字段导航后,左或右箭头键作为后退或前一个按钮导航到下一个/上一个片段(下一个/上一个屏幕)。

我有以下xml字段和一些自定义

<com.UI.widget.UIEditText
            android:id="@+id/userinfo_lastnameinput"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textCursorDrawable="@null"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:ems="10"
            android:maxLength="20"
            android:textColor="@color/white"
            android:imeOptions="actionDone"
            android:singleLine="true" 
            android:inputType="textPersonName" android:paddingTop="5dp"/>

相应的Java代码是:

// Initialize the variable 
    mLastNameInput = (UIEditText) this.findViewById(R.id.userinfo_lastnameinput);
    mLastNameInput.clearFocus();
    lastNameTextChangeListener();

private void lastNameTextChangeListener() {
    mLastNameInput.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {
            if (mInitialLoad) {
                return;
            }

            mLastNameVar.setValue(mLastNameInput.getText().toString().trim());
            mLastNameInput.setIsPending(mLastNameVar.isPending());


        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1,
                                      int arg2, int arg3) {
            // Do nothing

        }

        @Override
        public void onTextChanged(CharSequence arg0, int arg1, int arg2,
                                  int arg3) {
            // Do nothing

        }
    });
}

如何限制此行为,以使箭头键仅在可编辑字段内移动。

1 个答案:

答案 0 :(得分:0)

你也可以像这样动态创建片段

// Create new fragment and     
transaction Fragment newFragment = new ExampleFragment();     
FragmentTransaction transaction = getFragmentManager().beginTransaction();    

//使用此片段替换fragment_container视图中的任何内容,//并在需要时将事务添加到后台堆栈

transaction.replace(R.id.fragment_container, newFragment);     

transaction.addToBackStack(null); 

//提交交易

transaction.commit();

只需使用     getSupportFragmentManager()。beginTransaction()。replace(R.id.container,fragment,&#34; class和/或increment&#34;); 最好是按钮设计。只需将您的XML编码片段用作容器