带有普通TextView文件的搜索过滤器

问题描述 投票:-1回答:2

这是我的代码。我想添加过滤器,以便当我使用“教师”搜索时,结果仅显示来自TextView下方的教师。它没有任何listview arraylist。怎么可能???。

        <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" 
        android:orientation="Vertical"
        android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView android:id="@+id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_parent" 
    android:capitalize="characters" 
    android:text="University" />

        <TextView android:id="@+id/text2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_parent" 
    android:capitalize="characters" 
    android:text="School" />

        <TextView android:id="@+id/text3" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_parent" 
    android:capitalize="characters" 
    android:text="Madam" />

        <TextView android:id="@+id/text4" 
    android:layout_width="match_parent" 
android:layout_height="wrap_parent" 
android:capitalize="characters" 
android:text="Teacher" />

        <TextView android:id="@+id/text5"
 android:layout_width="match_parent" 
android:layout_height="wrap_parent" 
android:capitalize="characters" 
android:text="Master" />

        </LinearLayout>
android filter
2个回答
0
投票

您的信息不足。建议您,在问题上尽可能多地提供描述。无论如何,让我们开始吧。如果您想搜索和过滤,首先有几个问题可以在这里提出。->这是什么类型的[[app或简单程序?->您正在[[搜索一些数据,但是从哪里来的?->您想搜索哪种类型的教师信息? nameid,付款还是其他?您必须使自己的思想像:嘿!我正在搜索老师,但是呢?名称或他/她的工资或什么?从哪里来的?将此逻辑转换为代码您可以通过以下方式实现搜索->在工具栏中添加搜索->使用自定义Edit text使其充当seachView->最后但并非最不重要的一点,您可以使用recyclerView filter来过滤项目,也可以使用room persistence查询来搜索项目。幸运的是,几天或几天前我都面临着同样的问题。现在,我将为您提供链接,说明我是如何使用工具栏或不使用工具栏来实现searchView的,以及通过我更喜欢使用自定义edittext的方式对我来说最有效的方法是什么,对我来说是更好的决定。无论如何,这里是:MVVM Recyclerview Livedata Room SearchView请仔细阅读此链接中的所有内容,从问题到注释再到答案,我假设您已经掌握MVVMRoom persistenceRecyclerView的基本知识。而且这只是recyclerView和过滤器https://www.androidhive.info/2017/11/android-recyclerview-with-search-filter-functionality/我希望这会有所帮助,谢谢()。


0
投票
XML:

`<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <EditText android:id="@+id/edittext_search" android:hint="Search Here" android:layout_width="match_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/tvUniversity" android:visibility="gone" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="University" /> <TextView android:id="@+id/tvSchool" android:visibility="gone" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="School" /> <TextView android:id="@+id/tvMadam" android:visibility="gone" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Madam" /> <TextView android:id="@+id/tvTeacher" android:visibility="gone" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Teacher" /> <TextView android:id="@+id/tvMaster" android:visibility="gone" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Master" /> </LinearLayout>`

Java:

public class MainActivity extends AppCompatActivity {
    TextView _teacher,_university,_school,_master,_madam;
    EditText search;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        search = findViewById(R.id.edittext_search);
        _teacher = findViewById(R.id.tvTeacher);
        _university = findViewById(R.id.tvUniversity);
        _school = findViewById(R.id.tvSchool);
        _master = findViewById(R.id.tvMaster);
        _madam = findViewById(R.id.tvMadam);

        search();
    }

    private void search() {
        search.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            //Hide all view first
            _teacher.setVisibility(View.GONE);
            _university.setVisibility(View.GONE);
            _school.setVisibility(View.GONE);
            _madam.setVisibility(View.GONE);
            _master.setVisibility(View.GONE);

            if(charSequence.toString().toLowerCase().equals("teacher")){
                _teacher.setVisibility(View.VISIBLE);
            }else if(charSequence.toString().toLowerCase().equals("university")){
                _university.setVisibility(View.VISIBLE);
            }else if(charSequence.toString().toLowerCase().equals("school")){
                _school.setVisibility(View.VISIBLE);
            }


            @Override
            public void afterTextChanged(Editable editable) {
            }
        });
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.