setOnEditorActionListener ничего не возвращает - PullRequest
0 голосов
/ 11 ноября 2018

Мне потребовалось некоторое время, чтобы понять, что этот setOnEditorActionListener является виновником. По крайней мере, в этой области. Запуск теста на реальном устройстве ничего не сработает при нажатии Enter.

То же самое с эмулятором, но он отлично работает, используя Enter на клавиатуре моего компьютера. Я добавил несколько строк в мой XML-файл, предложенный пользователями здесь.

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_search, container, false);
    mFilters = (ImageView) view.findViewById(R.id.ic_search);
    mSearchText = (EditText) view.findViewById(R.id.input_search);
    Log.d(TAG, "getElasticSearchPassword: retrieving elasticsearch aissa password."+ mElasticSearchPassword);
    getElasticSearchPassword();
    init();

    return view;
}

private void init(){

mSearchText.setOnEditorActionListener(new  
TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if(actionId == EditorInfo.IME_ACTION_SEARCH
                    ||actionId == EditorInfo.IME_ACTION_DONE
                    || event.getAction() == KeyEvent.ACTION_DOWN
                    || event.getKeyCode() == KeyEvent.KEYCODE_ENTER){

                mPosts = new ArrayList<Post>();

                Retrofit retrofit = new Retrofit.Builder()
                baseUrl(BASE_URL)

            .addConverterFactory(GsonConverterFactory.create())
            .build();

            Code goes here
          }
          Return False
           }
         });
         }

Вот мой оригинальный XML-файл:

  <?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  xmlns:app="http://schemas.android.com/apk/res-auto">

  <android.support.v7.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:id="@+id/search_toolbar"
    android:background="@drawable/grey_border_bottom"
    android:padding="2dp"
    >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@null"
            android:hint="search..."
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:textSize="14sp"
            android:layout_toLeftOf="@+id/ic_search"
            android:id="@+id/input_search"
            android:layout_gravity="center_vertical"
            android:maxLines="1"
            android:imeOptions="actionSearch"
            android:inputType="text"

            />

        <ImageView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:id="@+id/ic_search"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:src="@drawable/ic_search"
            android:layout_marginRight="5dp"/>


    </RelativeLayout>

  </android.support.v7.widget.Toolbar>


 <android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/recyclerView"
    android:scrollbars="vertical"
    android:layout_below="@+id/search_toolbar"
    android:background="@color/lightGrey">


  </android.support.v7.widget.RecyclerView>


  <FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/container"
    android:visibility="gone">

</FrameLayout>


</RelativeLayout>

Также я попытался удалить условие if. Подозревая, что некоторые API не отвечают на IME_ACTION.

...