我有这个应用程序,它从MySql数据库中检索数据并将其解析为回收器视图。我有一个editText,我希望能够在键入时过滤回收器视图项目。
下面是我的主要活动(SearchAvtivity):
public class SearchActivity extends AppCompatActivity {
private static final String TAG = "Search Activity";
private Context mContext = SearchActivity.this;
private static final int ACTIVITY_NUM = 1;
String urlAddress = "myDatabaseAddressGoesHere.PHP";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
Log.d(TAG, "onCreate: started");
setupBottomNavigationView();
final RecyclerView rv = (RecyclerView) findViewById(R.id.SearchRv);
rv.setLayoutManager(new LinearLayoutManager(this));
rv.setItemAnimator(new DefaultItemAnimator());
Downloader dl = new Downloader(SearchActivity.this,urlAddress,rv);
dl.execute();
}
/**
* Setup Bottom Navigation View
*/
private void setupBottomNavigationView(){
Log.d(TAG, "setupBottomNavigationView: Setting up Bottom Navigation View");
BottomNavigationViewEx bottomNavigationViewEx = (BottomNavigationViewEx)findViewById(R.id.bottom_nav_bar);
BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx);
BottomNavigationViewHelper.enableNavigation(mContext,bottomNavigationViewEx);
Menu menu = bottomNavigationViewEx.getMenu();
MenuItem menuItem = menu.getItem(ACTIVITY_NUM);
menuItem.setChecked(true);
}
}
这是MyAdapter:
public class MyAdapter extends RecyclerView.Adapter<MyHolder> {
Context c;
ArrayList<SpaceCraft> spaceCrafts;
List<MyHolder> displayedList;
public MyAdapter(Context c, ArrayList<SpaceCraft> spaceCrafts) {
this.c = c;
this.spaceCrafts = spaceCrafts;
}
@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.search_adapter_vertical,parent,false);
return new MyHolder(v);
}
@Override
public void onBindViewHolder(MyHolder holder, int position) {
holder.nameTv.setText(spaceCrafts.get(position).getName());
holder.addressTv.setText(spaceCrafts.get(position).getAddress());
holder.phoneTv.setText(spaceCrafts.get(position).getPhone());
holder.emailTv.setText(spaceCrafts.get(position).getEmail());
}
@Override
public int getItemCount() {
return spaceCrafts.size();
}
}
Ido不知道您是否需要查看vlasses:下载器,解析器,连接器或支架。我请告诉我。
您应该为RecyclerView使用TextWatcher()。
您可以在editText上使用TextWatcher执行此操作,并在其中过滤您的列表。
例:
((EditText) findViewById(R.id.your_edit_text)).addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
String text = s.toString();
ArrayList<String> yourCopyList = new ArrayList<>(yourList)
yourList.clear();
if (text.isEmpty()) {
addAllYourDataToList();
} else {
text = text.toLowerCase();
for (int i = 0; i<yourCopyList.size(); i++) {
// Adapt the if for your usage
if (yourCopyList.get(i).getName().toLowerCase().contains(text)) {
yourList.add("the string");
}
}
}
adapter.notifyDataSetChanged();
}
});
在此示例中,您将删除列表中的所有数据,并仅添加文本筛选器上对应的数据
Android通用搜索功能似乎有很好的系统支持,除了语音搜索之外,还可以显示搜索建议,如最近的查询建议和自定义建议。 此框架要求声明搜索活动。该活动以意向获取查询,并将搜索结果呈现给列表视图。 我对此有两个问题: 1-我想在当前活动中进行搜索(我在应用程序栏上有一个搜索视图)。那么,该活动是否会重新启动?那会很奇怪。我应该发送到不可见的活动并获取结果吗?这可能吗? 2-我可以使用RecyclerV
我试图在Fragment中实现一个带有建议(过滤器)的SearchView,但是我没有成功。我尝试了几乎所有的教程,但没有一个对我有效。我将感激任何帮助。谢谢你 可扩展置标语言... 碎片 适配器
我在里面使用了。我还将设置为false for 支持较低的API
大家好我需要帮助我第一次使用android studio java。。。这是我的界面 在此输入图像描述 我想恢复列表中的EditText值时,用户点击"valider la命令"
我有一个带有viewpager的活动,并且在其中一个片段中,我使用带有视图项作为编辑文本的Recycler视图。这是我的代码。 在这里,我已经给edittext宽度作为match_parent(android:layout_width="match_parent"),但在运行时,它会根据提示的宽度进行包装。有人能帮我解决这个问题吗。 适配器: 片段: 片段布局:
我正在尝试使用文本字段筛选表视图,我需要一个文本字段(txtSearch)来搜索“nhs编号”、“名字”、“姓氏”和“分类类别”。我曾尝试在网上实施各种解决方案,但没有成功,我对这一切还是新手,所以如果问得不好,我深表歉意。任何帮助都将不胜感激,我的代码如下。 公共类QueueTabPageController实现可初始化{ 此处出现错误(步骤4): 和(步骤5) 说明:无法从类型TableVie