태그 보관물: android

android

Android에서 Soft Keyboard Next를 클릭하면 다른 EditText로 이동

‘Next’를 누르면 User EditText의 초점이 Password로 이동해야합니다. 그런 다음 비밀번호에서 오른쪽으로 이동해야합니다. 코드 작성 방법을 알려 주시겠습니까?

여기에 이미지 설명을 입력하십시오

<LinearLayout
    android:id="@+id/LinearLayout01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="User Name*" />

    <EditText
        android:id="@+id/txt_User"
        android:layout_width="290dp"
        android:layout_height="33dp"
        android:singleLine="true" />

</LinearLayout>


<LinearLayout
    android:id="@+id/LinearLayout02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password*" />

    <EditText
        android:id="@+id/txt_Password"
        android:layout_width="290dp"
        android:layout_height="33dp"
        android:singleLine="true"
        android:password="true" />

    <TextView
        android:id="@+id/confirm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password*" />

    <EditText
        android:id="@+id/txt_Confirm"
        android:layout_width="290dp"
        android:layout_height="33dp"
        android:singleLine="true"
        android:password="true" />

</LinearLayout>



답변

초점 처리

초점 이동은 주어진 방향에서 가장 가까운 이웃을 찾는 알고리즘을 기반으로합니다. 드문 경우이지만 기본 알고리즘이 개발자의 의도 된 동작과 일치하지 않을 수 있습니다.

다음 XML 속성을 사용하여 방향 탐색의 기본 동작을 변경하십시오.

android:nextFocusDown="@+id/.."
android:nextFocusLeft="@+id/.."
android:nextFocusRight="@+id/.."
android:nextFocusUp="@+id/.."  

방향 탐색 외에 탭 탐색을 사용할 수 있습니다. 이를 위해 당신은 사용해야합니다

android:nextFocusForward="@+id/.."

특정 관점에 초점을 맞추려면 전화

view.requestFocus()

변화하는 특정 초점 이벤트를 들으려면 View.OnFocusChangeListener


키보드 버튼

android:imeOptions키보드의 추가 버튼을 처리하는 데 사용할 수 있습니다 .

편집기와 연결된 IME에서 활성화하여 응용 프로그램과의 통합을 향상시킬 수있는 추가 기능 여기서 상수는 imeOptions에 의해 정의 된 상수에 해당합니다.

imeOptions의 상수는 다양한 액션과 플래그를 포함합니다. 값에 대해서는 위의 링크를 참조하십시오.

가치 예

액션 다음 :

조치 키는 “다음”조작을 수행하여 사용자가 텍스트를 승인 할 다음 필드로 이동합니다.

완료 :

동작 키는 “완료”작업을 수행합니다. 일반적으로 입력 할 항목이 더 이상없고 IME가 닫힙니다.

코드 예 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="32dp"
        android:layout_marginTop="16dp"
        android:imeOptions="actionNext"
        android:maxLines="1"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="24dp"
        android:imeOptions="actionDone"
        android:maxLines="1"
        android:ems="10" />

</RelativeLayout>

imeoptions 이벤트를 들으려면을 사용하십시오 TextView.OnEditorActionListener.

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEARCH) {
            performSearch();
            return true;
        }
        return false;
    }
});


답변

android:inputType="text"

같은 효과를 가져와야합니다. 다음을 누르면 다음 요소에 초점을 맞 춥니 다.

android:nextFocusDown="@+id/.."

다음보기에서 초점을 얻지 않으려면 이 옵션을 추가 하십시오.


답변

editText를 추가하십시오

android:imeOptions="actionNext"
android:singleLine="true"

매니페스트의 활동에 속성 추가

    android:windowSoftInputMode="adjustResize|stateHidden"

레이아웃 파일에서 ScrollView가 루트 또는 상위 레이아웃으로 설정 됨

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.ukuya.marketplace.activity.SignInActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

       <!--your items-->

    </ScrollView>

</LinearLayout>

추가 할 때마다 원하지 않으면 스타일을 작성하십시오. values ​​/ style.xml에 스타일 추가

기본 / 스타일 :

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="editTextStyle">@style/AppTheme.CustomEditText</item>
    </style>

<style name="AppTheme.CustomEditText"     parent="android:style/Widget.EditText">
        //...
        <item name="android:imeOptions">actionNext</item>
        <item name="android:singleLine">true</item>
    </style>


답변

다음 줄을 사용하십시오

android:nextFocusDown="@+id/parentedit"

parentedit다음 EditText에 초점을 맞출 ID입니다 .

위의 줄에는 다음 줄도 필요합니다.

android:inputType="text"

또는

android:inputType="number"

@Alexei Khlebnikov 제안에 감사드립니다.


답변

android:inputType="textNoSuggestions"
android:imeOptions="actionNext"
android:singleLine="true"
android:nextFocusForward="@+id/.."

추가 필드 추가

android : inputType = “textNoSuggestions”

내 경우에 일했다!


답변

<AutoCompleteTextView
                android:id="@+id/email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:drawableLeft="@drawable/user"
                android:hint="@string/username"
                android:inputType="text"
                android:maxLines="1"
                android:imeOptions="actionNext"
                android:singleLine="true" />

이 세 줄은 마술을

            android:maxLines="1"
            android:imeOptions="actionNext"
            android:singleLine="true"


답변

onEditorAction 핸들러에서 다음 예제와 같이 조치를 처리 중인지 (true) 또는 일부 논리를 적용하고 정상적인 동작 (false)을 원하는지 여부를 나타내는 부울을 리턴해야합니다.

EditText te = ...
te.setOnEditorActionListener(new OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event){
        if (actionId == EditorInfo.IME_ACTION_NEXT) {
            // Some logic here.
            return true; // Focus will do whatever you put in the logic.
        }
        return false;  // Focus will change according to the actionId
    }
});

포커스가 움직이지 않았기 때문에 논리를 수행 한 후 true를 반환했을 때 이것을 발견했습니다.