Asim
Asim

Reputation: 33

Autocomplete Text is not working in android fragment

I want to set autocomplete text in my application. The suggestion values will fetch from the database. But for a trial I made a string array for the suggestion values. It works fine when I implement it on an activity but not working in fragment.

In place of getActivity function I tried:
1) getContext()
2) this.getActivity()
3) (Search_Bus)getActivity()

but none work... it's giving me error:

Attempt to invoke virtual method on a null object reference

Here's my code...

public class Bus_Schedule_tab3 extends Fragment {

AutoCompleteTextView autoCompleteTextView;
ArrayList<String> array;
ArrayAdapter<String> adapter;
String[] stop_names;

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.bus_schedule_tab3, container, false);

    stop_names  = new String[] {"usa","china","russia","bangladesh"};

    autoCompleteTextView = (AutoCompleteTextView)rootView.findViewById(R.id.autoCompleteTextView2);
    adapter = new ArrayAdapter<String>(getActivity(),R.layout.support_simple_spinner_dropdown_item,stop_names);
    autoCompleteTextView.setAdapter(adapter);

    return rootView;
}

Upvotes: 0

Views: 1535

Answers (2)

Set in your xml file android:completionThreshold.

<AutoCompleteTextView
                android:id="@+id/id"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:completionThreshold="1"
                android:layout_weight="1"/>

Upvotes: 0

kamal verma
kamal verma

Reputation: 516

Its working for me...You missed to set threshold

AutoCompleteTextView autoCompleteTextView;
ArrayAdapter<String> adapter;
String[] stop_names;

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_test, container, false);


    stop_names = new String[]{"usa", "china", "russia", "bangladesh"};

    autoCompleteTextView = rootView.findViewById(R.id.autoCompleteTextView2);
    adapter = new ArrayAdapter<>(getActivity(), R.layout.support_simple_spinner_dropdown_item, stop_names);
    autoCompleteTextView.setThreshold(1);
    autoCompleteTextView.setAdapter(adapter);


    return rootView;
}

Upvotes: 2

Related Questions