programing

활동이 시작될 때 소프트 키보드 표시

randomtip 2021. 1. 17. 10:50
반응형

활동이 시작될 때 소프트 키보드 표시


A와 B의 두 가지 활동이 있습니다. A가 시작되면 조건을 확인하고 참이면 startActivityForResult()B를 시작 하도록 호출 합니다. B는 텍스트 입력 만 받으므로 B가 시작될 때 소프트 키보드가 자동으로 팝업되는 것이 합리적입니다. 활동이 시작되면 EditText에 이미 포커스가 있고 입력 할 준비가되었습니다.

문제는 B windowSoftInputMode="stateAlwaysVisible"에 대한 <activity>태그 아래의 매니페스트에 설정된 경우에도 키보드가 표시되지 않는다는 것 입니다. 또한 값을로 설정했습니다 stateVisible. 자동으로 표시되지 않으므로 EditText를 탭하여 표시해야합니다.

누구든지 해결책이 무엇인지 알고 있습니까?


나에게 가장 잘 맞는 것은 활동 B 추가에 대한 Android Manifest에 있습니다.

android:windowSoftInputMode="stateVisible"

그것이 당신에게도 도움이되기를 바랍니다.


가장 쉬운 솔루션 : Put

android:windowSoftInputMode = "stateVisible" 

AndroidManifest.xml의 활동 섹션


EditText의 requestFocus가 표시되지 않으면 다음과 같이 할 수 있습니다.

InputMethodManager imm = (InputMethodManager)getSystemService(
    Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEditText, 0);

여기에 자세한 내용은.


나를 위해이 솔루션 만 작업했습니다. 해당 활동에 대한 매니페스트를 추가하십시오.

android:windowSoftInputMode="stateVisible|adjustPan"

약간 지연된 키보드를 표시해보십시오. 다음과 비슷한 것 :

public void onResume() {
    super.onResume();

    TimerTask tt = new TimerTask() {

        @Override
        public void run() {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(yourTextBox, InputMethodManager.SHOW_IMPLICIT);
        }
    };

    final Timer timer = new Timer();
    timer.schedule(tt, 200);
}

에뮬레이터를 사용하는 경우 소프트 키보드가 표시되도록하려면 하드 키보드를 꺼야합니다.


두 가지 방법이 있습니다.

방법 1. OnCreate 메서드 내에서 다음 코드 사용

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

클릭하지 않으면 키보드가 팝업되지 않습니다.

또는

방법 2 XML에서 "requestfocus"를 사용하여 TextView와 같은 다른보기에서 포커스를 이동할 수 있습니다.

<TextView
            android:id="@+id/year_birth_day"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="1991">            
           <requestFocus />
           </TextView>

방법 3 (피할 수 있어야한다고 생각합니다) 매니페스트에서 다음 코드 사용-

android:windowSoftInputMode="stateVisible"

파일 : AndroidManifest.xml

<activity android:name=".MainActivity">

다음 속성을 추가합니다.

android:windowSoftInputMode="stateVisible"

나를 위해 일한.


paste this after setContentView

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

ReferenceURL : https://stackoverflow.com/questions/2466516/show-soft-keyboard-when-activity-starts

반응형