【问题标题】:How to set Text in SearchView?如何在 SearchView 中设置文本?
【发布时间】:2020-01-02 07:31:39
【问题描述】:

如何将数据传递给 searchview?我正在传递数据,但我不知道如何在我的搜索视图中获取值,请帮助我

public static final String EXTRA_ID = "Id";

@BindView(R.id.svDetail)
android.support.v7.widget.SearchView svDetail;
@BindView(R.id.rvDetail)
RecyclerView rvDetail;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_detail_member);
    ButterKnife.bind(this);

    String id = getIntent().getStringExtra(EXTRA_ID);
    svDetail.setQuery(id,false);

当我像 // tvdetail.setText(id); 这样使用 TextView 时 它正在工作,为什么不能用于 SearchView?请帮忙

【问题讨论】:

  • svDetail.getQuery(...) – 你的意思是 setQuery(), set 而不是 get
  • String id = getIntent().getStringExtra("id");将返回您传递给 SearchView 的 id
  • 我改成 svDetail.setQuery(...),但它也不起作用
  • String id = getIntent().getStringExtra("id");如何获取 id 到 searchview?喜欢自动填充
  • “不工作”到底是什么意思?它崩溃了吗?它是否设置了一些意想不到的东西?它只是没有设置任何东西吗?

标签: java android android-studio searchview


【解决方案1】:

首先,您需要检查您是否在 Intent 中获取数据,如下所示:-

       /// GETTING INTENT DATA
        Intent intent = getIntent();
        if (intent.hasExtra("EXTRA_ID")) {
            String id = getIntent().getStringExtra("EXTRA_ID");
              YOUR_SEARCHVIEW.setActivated(true);

                YOUR_SEARCHVIEW.onActionViewExpanded();
                YOUR_SEARCHVIEW.setIconified(false);
                YOUR_SEARCHVIEW.clearFocus();


 ///AT THE END YOU NEED TO SET THE TEXT
                YOUR_SEARCHVIEW.setQuery(id,false);

        }
        else {
            Log.e("NO DATA","NO DATA FOUND");
        }

另一个问题可能是您正在传递数据 Integer 值并获得 String,反之亦然

【讨论】:

  • 当我使用 TextView 获取数据时,它可以工作,为什么它不能与 Searchview 一起工作?最终字符串 idku = getIntent().getStringExtra(EXTRA_ID); tvdetail.setText(idku);
  • @yesiaPlorina 我已经更新了上面的代码,在行尾添加了YOUR_SEARCHVIEW.clearFocus()..尝试一下,让我知道一次
  • E/AudioMixer: AudioMixer::getTrackName out of available tracking E/AudioFlinger: no more track names available E/AudioFlinger: createTrack_l() initCheck failed -12;没有控制块? com.yesia.searchrecyclerview E/RecyclerView:没有附加适配器;跳过布局 com.android.inputmethod.latin com.yesia.searchrecyclerview E/RecyclerView:未连接适配器;跳过布局
  • @yesiaPlorina 这是什么?这是一个新问题吗?
  • @yesiaPlorinan 请检查更新的解决方案并让我知道一次
【解决方案2】:

我不知道如何将数据传递给 searchview

但作为建议:您可以使用 editText 并在其旁边放一个搜索图标

whit editText 你可以使用这个代码:

 EditText searchBar = findViewById(R.id.searchBar);

    searchBar.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {}

        @Override
        public void beforeTextChanged(CharSequence s, int start,
                                      int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            Toast.makeText(MainActivity.this, "editText content changed", Toast.LENGTH_SHORT).show();

        }
    });

对于传递值,只需编写 searchBar.setText(id); ;此行运行 TextChangedListener,现在您的搜索栏也有一个文本更改侦听器

【讨论】:

    猜你喜欢
    • 2012-05-19
    • 2017-09-04
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 2015-12-08
    • 1970-01-01
    相关资源
    最近更新 更多