【发布时间】:2021-02-12 10:59:09
【问题描述】:
我有一个片段选项卡布局。在第一个选项卡片段中,我有几个自动完成文本视图。这些自动完成文本视图引入了数据异步方式。我的问题是第一个自动完成文本视图不会触发 setOnItemClickListener 回调,而其他两个自动完成工作正常。 我尝试将单个自动完成从 onCreateView 移动到 onViewCreated。 我删除了文本观察器并尝试了,但到目前为止没有任何效果。
toEditAutocompleteText = (AutoCompleteTextView)view.findViewById(R.id.toEditAutocompleteText );
toEditAutocompleteText.setOnItemClickListener(onBranchSelected);
toEditAutocompleteText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
/*if (globalPreventTextWatcher == true) {
return;
}*/
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().length() >= 1 && toEditText.hasFocus()) {
//
// System.out.println("branch----------------------->"+s.toString());
searchBranch(s.toString());
}
}
});
就像上面的自动完成文本一样,我还有一个自动完成文本。这些都可以正常工作,但是有一个像这样不会触发回调。 这三者之间的唯一区别是获取数据调用的异步函数不同,因为它们返回不同的对象数组。
具有自动完成文本视图的选项卡之一。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/lightGray"
android:fillViewport="true">
<RelativeLayout 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:id="@+id/activity_update_delivery_record"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_table"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:stretchColumns="1">
<TableRow>
<!-- Column 1 -->
<EditText
android:id="@+id/docketNumberEditText"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_margin="4dip"
android:layout_weight="1"
android:background="@drawable/rounded_bg"
android:completionThreshold="1"
android:hint="docket number"
android:maxLines="1"
android:gravity="center"
android:padding="10dip" />
<!-- Column 2 -->
<!--<TextView-->
<!--android:id="@+id/tbl_txt2"-->
<!--android:layout_width="0dip"-->
<!--android:layout_height="wrap_content"-->
<!--android:background="@color/red"-->
<!--android:textColor="@color/white"-->
<!--android:padding="10dip"-->
<!--android:layout_margin="4dip"-->
<!--android:layout_weight="1"-->
<!--android:text="Column 2" />-->
<!--<!– Column 3 –>-->
<!--<TextView-->
<!--android:id="@+id/tbl_txt3"-->
<!--android:layout_width="0dip"-->
<!--android:layout_height="wrap_content"-->
<!--android:background="@color/red"-->
<!--android:textColor="@color/white"-->
<!--android:padding="10dip"-->
<!--android:layout_margin="4dip"-->
<!--android:layout_weight="1"-->
<!--android:text="Column 3" />-->
</TableRow>
<TableRow>
<TextView
android:id="@+id/fromValue"
android:layout_width="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:gravity="center"
android:text="From Branch"
android:textSize="18dp"
android:textStyle="bold" />
</TableRow>
<TableRow>
<AutoCompleteTextView
android:id="@+id/consignor"
android:layout_width="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:background="@drawable/rounded_bg"
android:completionThreshold="1"
android:gravity="center"
android:hint="Consignor"
android:inputType="textPersonName"
android:nextFocusDown="@+id/consignee"
android:textColor="@android:color/black"
android:textSize="18dp"
android:textStyle="bold" />
</TableRow>
<TableRow>
<AutoCompleteTextView
android:id="@+id/consignee"
android:layout_width="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:background="@drawable/rounded_bg"
android:completionThreshold="1"
android:gravity="center"
android:hint="Consignee"
android:inputType="textPersonName"
android:nextFocusDown="@+id/bookingLocation"
android:textColor="@android:color/black"
android:textSize="18dp"
android:textStyle="bold" />
</TableRow>
<TableRow>
<AutoCompleteTextView
android:id="@+id/bookingLocation"
android:completionThreshold="1"
android:layout_width="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:background="@drawable/rounded_bg"
android:gravity="center"
android:hint="Booking location"
android:textStyle="bold"
android:inputType="textPersonName"
android:nextFocusDown="@+id/toEditText"
android:textColor="@android:color/black"
android:textSize="18dp" />
</TableRow>
<TableRow>
<AutoCompleteTextView
android:id="@+id/toEditText"
android:layout_width="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:background="@drawable/rounded_bg"
android:completionThreshold="1"
android:gravity="center"
android:hint="To City"
android:inputType="textPersonName"
android:nextFocusDown="@+id/invoice"
android:textColor="@android:color/black"
android:textSize="18dp"
android:textStyle="bold" />
</TableRow>
<TableRow>
<EditText
android:id="@+id/invoice"
android:layout_width="0dp"
android:layout_margin="10dip"
android:layout_weight="1"
android:background="@drawable/rounded_bg"
android:gravity="center"
android:hint="Invoice"
android:inputType="text"
android:maxLength="50"
android:nextFocusDown="@+id/weight"
android:textColor="@android:color/black"
android:textSize="18dp" />
<EditText
android:id="@+id/weight"
android:layout_width="0dp"
android:layout_margin="10dip"
android:layout_weight="1"
android:background="@drawable/rounded_bg"
android:gravity="center"
android:hint="Weight"
android:inputType="number"
android:maxLength="6"
android:textColor="@android:color/black"
android:textSize="18dp" />
<EditText
android:id="@+id/quantity"
android:layout_width="0dp"
android:layout_margin="10dip"
android:layout_weight="1"
android:background="@drawable/rounded_bg"
android:gravity="center"
android:hint="Quantity"
android:inputType="number"
android:maxLength="6"
android:nextFocusDown="@+id/invoice"
android:textColor="@android:color/black"
android:textSize="18dp" />
</TableRow>
<TableRow>
<AutoCompleteTextView
android:id="@+id/truckNumberAutocomplete"
android:layout_width="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:background="@drawable/rounded_bg"
android:completionThreshold="1"
android:gravity="center"
android:hint="Truck number"
android:inputType="textPersonName"
android:nextFocusDown="@+id/invoice"
android:textColor="@android:color/black"
android:textSize="18dp"
android:textStyle="bold" />
</TableRow>
<TableRow>
<Spinner
android:id="@+id/modeSpinner"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:hint="Mode"
android:textSize="18dp" />
</TableRow>
<TableRow>
<ImageButton
android:id="@+id/clearInput"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="35dip"
android:layout_margin="35dp"
android:background="@drawable/circle_button_layout"
android:clickable="true"
android:src="@android:drawable/ic_menu_close_clear_cancel" />
<ImageButton
android:layout_width="wrap_content"
android:visibility="gone" />
<ImageButton
android:id="@+id/print"
android:padding="35dip"
android:layout_margin="35dp"
android:layout_width="40dp"
android:layout_height="40dp"
android:gravity="center"
android:background="@drawable/circle_button_layout"
android:clickable="true"
android:src="@mipmap/ic_print_icon" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="35dip"
android:layout_margin="35dp"
android:clickable="true"
android:background="@drawable/circle_button_layout"
android:src="@android:drawable/ic_menu_add"
android:id="@+id/fabButton"/>
</TableRow>
</TableLayout>
</RelativeLayout>
</ScrollView>
主要片段持有者
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<!--<android.support.v7.widget.Toolbar-->
<!--android:id="@+id/toolbar"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="?attr/actionBarSize"-->
<!--android:background="?attr/colorPrimary"-->
<!--app:layout_scrollFlags="scroll|enterAlways"-->
<!--app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />-->
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="fixed"
app:tabGravity="fill"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
已经为此花费了几个小时。报告没有错误。自动完成功能适用于数据获取部分,但是当您从列表中选择某些内容时,不会在项目选择回调上触发一个自动完成功能。
此外,这个特定的自动完成文本观察器也不会被触发,但会调用异步回调函数。 这让我更加困惑。
谁能指出可能出了什么问题。
【问题讨论】:
标签: java android android-fragments autocomplete