首页 > 解决方案 > 每次进行搜索查询时更改 TextView

问题描述

我试图让这段代码将在搜索视图中键入的任何内容显示为布局的文本视图中的文本。但是当我运行应用程序时,什么都没有显示。

public class MainActivity extends AppCompatActivity {

     TextView textview;
     @Override
     public void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);
     setContentView(R.layout.layout_search);
     textview = (TextView) findViewById(R.id.search_result);
     }

     @Override
     public boolean onCreateOptionsMenu(Menu menu){
          MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.search_menu,menu);
          SearchView searchView = (SearchView) menu.findItem(R.id.search_box).getActionView();
          searchView.setQueryHint("Search Here");
          searchView.setIconifiedByDefault(false);

          searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){
               @Override
               public boolean onQueryTextSubmit(String search){
               return false;
               }

               @Override
               public boolean onQueryTextChange(String search){
                    String result= "You have searched for "+search;
                    textview.setText(result);
                    return false;
               }
          });

          return super.onCreateOptionsMenu(menu);
     }
 }

我应该怎么做才能在 textview 中显示搜索字符串?

编辑

<menu xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto">
     <item android:id="@+id/search_box"
          android:title="search here"
          android:icon="@android:drawable/ic_menu_search"
          app:actionViewClass="android.widget.SearchView"
          app:showAsAction="always"/>

</menu>

当我在搜索框中输入搜索查询时,它没有显示在布局的 textview 小部件上。

标签: javaandroid

解决方案


您可能也有兴趣查看数据绑定以解决此问题:

https://developer.android.com/topic/libraries/data-binding/

从这个页面:

<TextView android:text="@{viewmodel.userName}" />


推荐阅读