繁体   English   中英

SearchView 到 Edittext 搜索

[英]SearchView to Edittext search

我是 android 初学者,我有使用 json 搜索 MySQL 数据库并显示结果的代码,现在我想将 SearchView 更改为 EditText(id) 和 Button (searchbtn),当单击搜索按钮时,它给了我结果我该如何更改此操作它

 mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }
        @Override
        public boolean onQueryTextChange(String query) {
            final Call<List<Spacecraft>> call = myAPIService.searchSpacecraft(query);
            call.enqueue(new Callback<List<Spacecraft>>() {

                @Override
                public void onResponse(Call<List<Spacecraft>> call, Response<List<Spacecraft>> response) {
                    mProgressBar.setVisibility(View.GONE);
                    populateListView(response.body());
                }
                @Override
                public void onFailure(Call<List<Spacecraft>> call, Throwable throwable) {
                    populateListView(new ArrayList<Spacecraft>());
                    mProgressBar.setVisibility(View.GONE);
                    Toast.makeText(MainActivity.this, "ERROR: "+throwable.getMessage(), Toast.LENGTH_LONG).show();
                }
            });
            return false;
        }
    });

只需通过 yourEditText.getText() 从你的 editText 获取文本; 并将值传递给您的请求 .. 所有这些都在 onButtonClickListener 中

按照贝尔沃代码

 searchBtn.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        //Get the value from edit text
                          String result = yourEdittext.getText().toString();
                        //Then pass the value to your request like that 
           final Call<List<Spacecraft>> call = myAPIService.searchSpacecraft(result);
                call.enqueue(new Callback<List<Spacecraft>>() {
    
                    @Override
                    public void onResponse(Call<List<Spacecraft>> call, Response<List<Spacecraft>> response) {
                        mProgressBar.setVisibility(View.GONE);
                        populateListView(response.body());
                    }
                    @Override
                    public void onFailure(Call<List<Spacecraft>> call, Throwable throwable) {
                        populateListView(new ArrayList<Spacecraft>());
                        mProgressBar.setVisibility(View.GONE);
                        Toast.makeText(MainActivity.this, "ERROR: "+throwable.getMessage(), Toast.LENGTH_LONG).show();
                    }
                });
        
                    }
                });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM