Fragment_Adapter_Calling.java 檔案
MyStudentAdapterU adp = new MyStudentAdapterU(stuData, getContext());
stdRecyclerView.setAdapter(adp);
stdRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
inflater.inflate(R.menu.search_menu,menu);
MenuItem item=menu.findItem(R.id.search_menu);
SearchView searchView=(SearchView)item.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adp.getFilter().filter(newText);
return false;
}
});
super.onCreateOptionsMenu(menu, inflater);
}
但是當我嘗試在 Activity.java 檔案中粘貼相同的代碼來呼叫配接器時,它會顯示錯誤“無法在 adapter.getFilter.filter(newText) 行的 'ProviderAdapter' 中決議方法 'getFilter';
ProviderAdapter adp=new ProviderAdapter(ProviderActivityList.this,lists);
r1.setAdapter(adp);
r1.setLayoutManager(new LinearLayoutManager(ProviderActivityList.this));
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search_menu,menu);
MenuItem item=menu.findItem(R.id.search_menu);
SearchView searchView=(SearchView)item.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adp.getFilter().filter(newText);
return false;
}
});
return super.onCreateOptionsMenu(menu);
}
錯誤圖片 錯誤截圖
uj5u.com熱心網友回復:
在第一個代碼片段中,您設定adp為MyStudentAdapterUwhich 顯然有一個getFilter()方法。
在第二個代碼剪輯器中,您設定adp為ProviderAdapter顯然沒有方法getFilter()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/447120.html
