Проблема с AutoCompleteTextView в фрагменте, используемом внутри TabbedActivity

Я создал TabbedActivity в качестве основного экрана для моего приложения, а также я создал фрагмент (используемый внутри TabbedActivity) для отображения при каждом нажатии на конкретную вкладку. Внутри одного фрагмента я использую AutoComplteTextView. Проблема заключается в том, что AutoComplteTextView не отображает никаких предложений, упомянутых в списке массива String, и я не получаю никаких ошибок в журнале, которые могут напрямую повлиять на решение этой проблемы. Код TabbedActivity, откуда вызывается фрагмент

  public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            if (getArguments().getInt(ARG_SECTION_NUMBER) == 1){
                View viewMakeTransaction = inflater.inflate(R.layout.fragment_make_transaction, container, false);
                return viewMakeTransaction;
            }
            else if(getArguments().getInt(ARG_SECTION_NUMBER) == 2){
                View viewAddCustomer = inflater.inflate(R.layout.fragment_add_customer, container, false);
                return viewAddCustomer;
            }
            else if (getArguments().getInt(ARG_SECTION_NUMBER) == 3){
                View viewViewTransaction = inflater.inflate(R.layout.fragment_view_transaction, container, false);
                return viewViewTransaction;
            }
            else{

                View rootView = inflater.inflate(R.layout.fragment_main, container, false);
                TextView textView = (TextView) rootView.findViewById(R.id.section_label);
                textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER)));
                return rootView;
            }
        }

Фрагмент (gment_make_transaction) код, имеющий AutocompletTextView

private static final String[] COUNTRIES = new String[]{"India","America"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View viewMakeTransactionFragment = inflater.inflate(R.layout.fragment_make_transaction, container, false);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,COUNTRIES);
    final AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) viewMakeTransactionFragment.findViewById(R.id.selectCustomer);
    autoCompleteTextView.setAdapter(adapter);
    return viewMakeTransactionFragment;
}

Шаги для воссоздания проблемы 1. Создайте новый проект Android - выберите TabbedActivity и стиль навигации как -ActionBarTabs(со средством просмотра страниц), как показано на рисунке ниже TabbedActivity.

  1. Нажмите "Готово" - проект будет создан
  2. Создать новый пустой фрагмент
  3. Измените код из фрагмента, как показано ниже, фрагмент кода на данный момент

    пакет demo.com.problem;

    импорт android.content.Context; импорт android.net.Uri; импорт android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; импорт android.view.View; импорт android.view.ViewGroup;

    открытый класс BlankFragment extends Fragment { @Override public View onCreateView(Inflater LayoutInflater, контейнер ViewGroup, Bundle saveInstanceState) { // Раздуть макет для этого фрагмента return inflater.inflate(R.layout.fragment_blank, container, false); } }

  4. перейти к TabbedActivity - Java-код внутри метода (onCreateView) вызвать фрагмент, используя приведенный ниже код

это вызовет фрагмент, когда пользователь находится на первом экране активности с вкладками

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    if (getArguments().getInt(ARG_SECTION_NUMBER) == 1){
        View viewMakeTransaction = inflater.inflate(R.layout.fragment_blank, container, false);
        return viewMakeTransaction;
    }
    else{

        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
        TextView textView = (TextView) rootView.findViewById(R.id.section_label);
        textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER)));
        return rootView;
    }
}

Запустите приложение один раз, чтобы убедиться, что фрагмент отображается в разделе 1

Шаги, чтобы добавить AutoCompleteTextView к фрагменту

  1. XML-файл для фрагмента

    <!-- TODO: Update blank fragment layout -->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_blank_fragment" />
    
    <AutoCompleteTextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    

  2. Java-код для фрагмента

    пакет demo.com.problem;

    импорт android.content.Context; импорт android.net.Uri; импорт android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.AppCompatAutoCompleteTextView; import android.view.LayoutInflater; импорт android.view.View; импорт android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView;

    открытый класс BlankFragment extends Fragment { AutoCompleteTextView autoCompleteTextView; приватная статическая final String [] COUNTRIES = new String [] {"India", "Aus"};

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
    
        View view = inflater.inflate(R.layout.fragment_blank, container, false);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,COUNTRIES);
        autoCompleteTextView = (AutoCompleteTextView) view.findViewById(R.id.textView);
        autoCompleteTextView.setAdapter(adapter);
        // Inflate the layout for this fragment
        return view;
    }
    

    }

Проблемы с представлением текста автозаполнения введите описание изображения здесь

0 ответов

Другие вопросы по тегам