2015-01-27 4 views
3

여기 내 문제가 있습니다. 2 개의 EditText를 표시하는 매우 간단한 레이아웃이 있는데, 하나는 제목이고 다른 하나는 설명입니다. 다음은 XML 파일입니다 Android EditText에 초점이 맞춰지지 않았습니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:weightSum="1"> 

    <EditText 
      android:layout_width="match_parent" 
      android:layout_height="63dp" 
      android:id="@+id/title_field" 
      android:background="#ffffffff" 
      android:hint="@string/titleFieldHint" 
      android:padding="20dp" 
      android:textSize="8.5pt" 
      android:maxLines="1"/> 

    <View 
      android:layout_width="fill_parent" 
      android:layout_height="1dp" 
      android:background="@android:color/darker_gray"/> 

    <EditText 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:id="@+id/description_field" 
      android:hint="@string/descriptionHint" 
      android:gravity="top" 
      android:padding="20dp" 
      android:scrollbars="vertical" 
      android:textSize="8.5pt" 
      android:background="#ffffff" 
      android:inputType="textMultiLine" 
      android:textIsSelectable="true" 
      android:focusableInTouchMode="true" android:layout_weight="1"/> 

</LinearLayout> 

나는이 레이아웃 키보드로 활동을 시작

이 title_field를 중심으로 보여주고, 그래서 작성하고 (키보드가 여전히 열려있는 동안) 다른 필드를 클릭하고 설명을 작성할 수 있습니다. 그러나 키보드를 숨기면 title_field를 클릭하지 않으면 description_field가 응답하지 않으므로 title_field를 클릭하지 않으면 다시 키보드에 표시되지 않습니다 (키보드). description_field는 나를 허용하지 않는 반면에 title_field는 상자 밖의 선택 항목 (상황 별 작업 표시 줄 포함)을 지원합니다. 심지어 선택합니다.

나는 단지 안드로이드 개발을 시작했습니다. 내가 놓친 것이 있습니까?

+0

레이아웃 높이가 설명'EditText'에 대한 0dp있는 코드를 사용할 수 있습니다. 그건 오타예요? – dharms

+0

@dcharms 아니야. 필자는 실제로 그것을 match_parent에서 변경했으며, IDE (IntelliJ)는 0dp가 더 나은 성능을 가지고 있다고 말했다. –

+0

무엇이 보이지 않습니까? 내가 이것을 실행할 때 키보드가 있거나 닫혀있을 때 두 Edittexts를 볼 수 있습니다. –

답변

2

취출 android:textIsSelectable="true".

또는

편집 :

새 편집 텍스트의 한 부분으로 사용하는 텍스트 유지 할 수 있도록해야하는 경우 andoid하는 힌트 :

변경 안드로이드 텍스트를 할 수 키보드로 텍스트를 사용합니다. 그러나 키보드가 닫히면 첫 번째 편집 텍스트로 돌아갈 필요가 있습니다. 그러면 두 번째 edtitext에 대해 열린 상태로 유지됩니다.

두 편집 상자 모두에 높이를 "wrap_content"로 사용합니다.

주 - - 특정 활동 검색 활동처럼 시작할 때 키보드를 갖고 싶어

<EditText 
    ... 
    android:text="descriptionHint" 
    android:focusableInTouchMode="true" 
    android:textIsSelectable="true" 
    android:layout_weight="1"/> 
+0

포커스 문제를 해결했습니다. (머리를 잃었을 때 추가 한 선 중 하나 였지만) description_field에 텍스트를 선택할 수 없기 때문에 이유를 알고 있습니까? 그게 뭐야? –

+0

선택이라고 말하면 복사하여 붙여 넣으려고합니까? 나는 그것에 들어가서 그것을 바꿀 수 있습니다. 사용자가 복사 할 수있는 옵션으로 텍스트를 유지해야합니까? –

+0

그래, 기본적으로 그 뜻. 나는 실제로 그것이 하나의 EditText에서 작동한다는 것이 이상하다는 이유로 물어보고 있는데 (실제로 상황 별 액션 바를 보여주기 전에 내가 지적했듯이) 다른 것은 아무것도하지 않는다. –

4

후 매니페스트에이 코드를 사용 그것은 바로 사용자가 활동에 착륙 키보드가 나타납니다. ..

<application ... > 
<activity 
    android:windowSoftInputMode="stateVisible" ... > 
    ... 
</activity> 
... 

은 또한 당신은 너무 그것을 당신의 자바 파일을 할 수 있습니다. Java를 사용하면 키보드 모양을보다 잘 제어 할 수 있습니다. 여기에 대한 코드가 있습니다 -

public void showSoftKeyboard(View view) { 
if (view.requestFocus()) { 
    InputMethodManager imm = (InputMethodManager) 
      getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); 
    } 
} 

키보드를 팝업하려면 showSoftKeyboard() 메소드를 호출하십시오 !!

희망 제가 도와 드리겠습니다! 건배!

+0

두 번째 편집 텍스트 @Gaurav를 닫은 후 키보드가 나타나지 않는 이유는 무엇입니까? 어떤 아이디어? 나는 왜 그것이 닫히고 나서 첫 번째가 아닌 두 번째가 아니라는 것을 이해하지 못한다. –

+0

android : textIsSelectable = "true"를 제거함으로써 그 문제가 해결되었다. 지금 당장 나의 남은 문제는 내가 선택할 수 없다는 것이다. copy/description_field에서 텍스트 등을 이동하십시오. 어쨌든 고마워! –

+0

두 번째 텍스트로 이동하는 것은 주로 사용자가 앱을 사용하는 것에 달려 있습니다! 내가 아는 한 동시에 두 개의 editText를 집중시킬 수는 없습니다. 사용자에게 앱과 상호 작용하는 것이 좋습니다. – Gavin

0
<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/startJourneyLinearLayout" 
    android:layout_below="@+id/startJourneyLinearLayout" 
    android:layout_marginLeft="65dp" 
    android:layout_marginTop="28dp" 
    android:ems="10" > 

    <requestFocus /> 
</EditText> 
+1

이게 뭔지 설명하고 어떻게 해결되는지 설명 해주세요. – Huangism

0

Refrence Android Development Article

잘 글고을 초점을 맞추기 위해, 당신은

private void requestFocus(View view) { 
     if (view.requestFocus()) { 
      getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
     } 
    } 

//Function Call 
requestFocus(yourEditetxt); 
관련 문제