setOnFocusChangeListener未在Fragment中调用

时间:2018-01-13 09:30:38

标签: java android

Here, I have three fields in my layout.

我将适配器设置为每个CustomAutocompleteTextView。用户从项目列表中选择Entry type。但如果用户输入列表中不存在的内容,我想将该字段设为空。

为此我写了这样的代码。它工作正常。当我专注于下一个字段时,这个方法正在调用。

actvEntryCategory.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View view, boolean b) {
                    String str = actvEntryCategory.getText().toString();
                    for (int i=0;i<EntryTypeAdapter.getCount();i++)
                    {
                        String temp = EntryTypeAdapter.getItem(i).toString();
                        if (str.compareTo(temp) == 0){
                            return;
                        }
                    }
                    actvEntryCategory.setText("");
                   // actvEntryCategory.setError("Please select valid Entry Type");
                }
            });

现在,用户必须从项目列表中选择Station Name,否则我想将此字段设为空。

为此我写了这样的代码。但是当我专注于Next字段时,这种方法不会调用。

actvDivName.setOnFocusChangeListener(new View.OnFocusChangeListener() 
{
public void onFocusChange(View view, boolean b) {
try{
String str = actvDivName.getText().toString();
for (int i=0;i<QRDivArrayAdapter.getCount();i++)
{
String temp = QRDivArrayAdapter.getItem(i).toString();
if (str.compareTo(temp) == 0){
return;
}
}
actvDivName.setText("");
// actvEntryCategory.setError("Please select valid Entry Type");
}catch(Exception focusfordivision)
{
Log.d("eEmp/Resume", "Error raised due to " + focusfordivision.toString());
}
}
});

这是我的XML代码。

<LinearLayout
        android:id="@+id/LLPlaceDetails"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:descendantFocusability="beforeDescendants"
        android:focusableInTouchMode="true"
        android:orientation="vertical"
        android:weightSum="1">

        <android.support.v7.widget.CardView
            android:id="@+id/zone_card_view"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="@dimen/activity_horizontal_margin"
            android:layout_marginLeft="@dimen/activity_custom_margin"
            android:layout_marginRight="@dimen/activity_custom_margin"
            android:layout_marginTop="@dimen/activity_horizontal_margin"
            android:layout_weight="0.54"
            card_view:cardElevation="@dimen/cardview_default_elevation"
            card_view:contentPadding="10dp">

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

                <TableRow
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:focusableInTouchMode="false">

                    <android.support.design.widget.TextInputLayout
                        android:id="@+id/input_layout_zone"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="5dp"
                        android:layout_weight="1">

                        <com.efftronics.android.eEmployee.Common.UI.CustomAutoCompleteTextView
                            android:id="@+id/actventry"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:ems="11"
                            android:hint="@string/Entry_Type"
                            android:inputType="textCapWords|textMultiLine"
                            android:maxLength="250"
                            android:theme="@style/AutocompleteTheme" />
                    </android.support.design.widget.TextInputLayout>
                </TableRow>

                <TableRow
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1">

                    <android.support.design.widget.TextInputLayout
                        android:id="@+id/input_layout_Division"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="5dp"
                        android:layout_weight="1">

                        <com.efftronics.android.eEmployee.Common.UI.CustomAutoCompleteTextView
                            android:id="@+id/actvDivName"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:hint="@string/station"
                            android:inputType="textCapWords|textMultiLine"
                            android:maxLength="250"
                            app:hintTextAppearance="@style/AutocompleteTheme"
                             />


                    </android.support.design.widget.TextInputLayout>
                </TableRow>



                <TableRow
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1">
                       <android.support.design.widget.TextInputLayout
                        android:id="@+id/input_layout_ProductType"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="5dp"
                        android:layout_weight="1">


                        <com.efftronics.android.eEmployee.Common.UI.CustomAutoCompleteTextView
                            android:id="@+id/actvProductType"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:hint="@string/product_type"
                            android:inputType="textCapWords|textMultiLine"
                            android:maxLength="250"
                            app:hintTextAppearance="@style/AutocompleteTheme" />
                    </android.support.design.widget.TextInputLayout>

                </TableRow>

为什么不打电话?

任何帮助都将不胜感激。

0 个答案:

没有答案