我正在经历一个特殊的问题。我在RelativeLayout中有多个EditText,它最终位于ScrollView中。我的问题是每当我编辑第二个(或第三个等)EditText时,它会失去焦点到ScrollView内的第一个EditText,而第一个EditText会获得键盘输入。
这是xml布局:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:id="@+id/parentLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:id="@+id/particularsLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_marginTop="50dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp">
<TextView
android:id="@+id/particularsTextView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PARTICULARS"
android:textColor="@android:color/darker_gray"
android:textStyle="bold"
/>
<View
android:id="@+id/bar1"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
android:layout_below="@+id/particularsTextView"
/>
<RelativeLayout
android:id="@+id/particularsParentRelativeLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/bar1"
android:layout_marginTop="10dp"
>
<EditText
android:id="@+id/nameEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="15dp"
android:layout_alignLeft="@+id/confirmPasswordEditText"
/>
<TextView
android:id="@+id/nameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NAME"
android:textColor="@android:color/darker_gray"
android:textStyle="bold"
android:layout_alignBottom="@+id/nameEditText"
android:layout_marginBottom="15dp"
android:textSize="12sp"
/>
<TextView
android:id="@+id/passwordTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PASSWORD"
android:textColor="@android:color/darker_gray"
android:textStyle="bold"
android:layout_alignBottom="@+id/passwordEditText"
android:layout_marginBottom="15dp"
android:textSize="12sp"
/>
<EditText
android:id="@+id/passwordEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/nameEditText"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/passwordTextView"
android:layout_alignParentRight="true"
android:nextFocusUp="@+id/passwordEditText"
android:layout_alignLeft="@+id/confirmPasswordEditText"
/>
<TextView
android:id="@+id/confirmPasswordTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CONFIRM PASSWORD"
android:textColor="@android:color/darker_gray"
android:textStyle="bold"
android:layout_alignBottom="@+id/confirmPasswordEditText"
android:layout_marginBottom="15dp"
android:textSize="12sp"
/>
<EditText
android:id="@+id/confirmPasswordEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/passwordEditText"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/confirmPasswordTextView"
android:layout_alignParentRight="true"
android:layout_marginLeft="5dp"
/>
<TextView
android:id="@+id/birthdayTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="BIRTHDAY"
android:textColor="@android:color/darker_gray"
android:textStyle="bold"
android:layout_alignBottom="@+id/birthdayEditText"
android:layout_marginBottom="15dp"
android:textSize="12sp"
/>
<EditText
android:id="@+id/birthdayEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/confirmPasswordEditText"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/birthdayTextView"
android:layout_alignParentRight="true"
android:layout_alignLeft="@+id/confirmPasswordEditText"
/>
<TextView
android:id="@+id/genderTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="GENDER"
android:textColor="@android:color/darker_gray"
android:textStyle="bold"
android:layout_marginTop="18dp"
android:layout_below="@+id/birthdayTextView"
android:textSize="12sp"
/>
<TextView
android:id="@+id/contactDetailsTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/genderTextView"
android:text="CONTACT DETAILS"
android:textColor="@android:color/darker_gray"
android:textStyle="bold"
android:layout_marginTop="50dp"
/>
<View
android:id="@+id/bar2"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
android:layout_below="@+id/contactDetailsTextView"
/>
<TextView
android:id="@+id/contactNoTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/contactNoEditText"
android:layout_marginBottom="15dp"
android:text="CONTACT NO."
android:textSize="12sp"
android:textColor="@android:color/darker_gray"
android:textStyle="bold"
/>
<EditText
android:id="@+id/contactNoEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/bar2"
android:layout_marginTop="15dp"
android:layout_alignParentRight="true"
android:layout_alignLeft="@+id/confirmPasswordEditText"
/>
<TextView
android:id="@+id/emailAddressTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="EMAIL AD."
android:textColor="@android:color/darker_gray"
android:textStyle="bold"
android:layout_alignBottom="@+id/emailAddressEditText"
android:layout_marginBottom="15dp"
android:textSize="12sp"
/>
<EditText
android:id="@+id/emailAddressEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/contactNoEditText"
android:layout_marginTop="10dp"
android:layout_alignParentRight="true"
android:layout_alignLeft="@+id/confirmPasswordEditText"
/>
<EditText
android:id="@+id/emailAddressEditText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/emailAddressTextView"
android:layout_marginTop="10dp"
android:layout_alignParentRight="true"
android:layout_alignLeft="@+id/confirmPasswordEditText"
/>
<TextView
android:id="@+id/countryTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="COUNTRY"
android:textColor="@android:color/darker_gray"
android:textStyle="bold"
android:layout_below="@+id/emailAddressEditText2"
android:layout_marginTop="18dp"
android:textSize="12sp"
/>
<CheckBox
android:id="@+id/termsCheckbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/countryTextView" />
<TextView
android:id="@+id/termsTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/termsCheckbox"
android:layout_alignBottom="@+id/termsCheckbox"
android:text="I AGREE TO THE TERMS AND CONDITIONS STATED"
android:textColor="@android:color/darker_gray"
android:layout_alignBaseline="@+id/termsCheckbox"
/>
<Button
android:id="@+id/signupButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/termsTextView"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:background="@drawable/signup"
android:layout_marginTop="30dp"
android:layout_marginBottom="30dp"
/>
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
如何解决此问题?
修改
我附上了问题的截图。我已进入&#34; h&#34;在passwordEditText中,但nameEditText获取值。
答案 0 :(得分:3)
mTabHost.addOnAttachStateChangeListener(new OnAttachStateChangeListener() {
@Override
public void onViewDetachedFromWindow(View v) {}
@Override
public void onViewAttachedToWindow(View v) {
mTabHost.getViewTreeObserver().removeOnTouchModeChangeListener(mTabHost);
}
});
在
之后的MainActivity.Java @setTabs()函数中添加此代码mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent);
这一行。 祝你好运。
答案 1 :(得分:0)
您可以在进行更改后将焦点设置为所需的编辑文本:例如
myEditText3.setFocusableInTouchMode(true);
myEditText3.requestFocus();
答案 2 :(得分:0)
它正在我的设备中工作。 我不知道为什么它不适合你,我认为在java代码中,可能会有一些错误。 但你可以试试,
<RelativeLayout
android:id="@+id/parentLayout"
android:layout_width="match_parent"
android:focusableInTouchMode="true"
android:layout_height="match_parent" >
将第3行添加到“parentLayout”