簡體   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