学习Android的第十七天

这篇具有很好参考价值的文章主要介绍了学习Android的第十七天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Android ListView 添加插入数据

添加记录

在指定位置插入数据

Android ListView 删除数据

ListView 删除数据

ListView 清空数据

Android ListView 更改数据

ListView 数据更新

Android ListView 查询数据

ListView 数据查询


Android ListView 添加插入数据

添加记录

我们在顶部添加一个按钮,每次点击添加一条记录,并且数据为空时提示用户没数据

XML 布局文件(activity_main.xml):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".MainActivity">

        <Button
            android:id="@+id/addButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="添加记录"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="16dp"/>

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/addButton"
            android:dividerHeight="1dp"/>

        <TextView
            android:id="@+id/noDataText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="无可用数据"
            android:layout_centerInParent="true"
            android:visibility="gone"/> <!-- 初始设置为隐藏 -->

</RelativeLayout>

Java 代码(MainActivity.java): 

package com.example.myapplication;

import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private ArrayList<String> dataList;
    private ArrayAdapter<String> adapter;
    private TextView noDataText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button addButton = findViewById(R.id.addButton);
        ListView listView = findViewById(R.id.listView);
        noDataText = findViewById(R.id.noDataText);

        dataList = new ArrayList<>();
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);
        listView.setAdapter(adapter);

        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addRecord();
            }
        });
    }

    private void addRecord() {
        // 在这里添加记录
        dataList.add("新建记录 " + (dataList.size() + 1));
        adapter.notifyDataSetChanged();

        // 如果有数据,则隐藏文本消息
        if (!dataList.isEmpty()) {
            noDataText.setVisibility(View.GONE);
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        // 在 onResume 中检查数据列表是否为空,并根据情况显示或隐藏文本消息
        if (dataList.isEmpty()) {
            noDataText.setVisibility(View.VISIBLE);
        } else {
            noDataText.setVisibility(View.GONE);
        }
    }
}

在指定位置插入数据

要在指定位置插入数据,可以添加一个编辑框让用户输入要插入的位置,然后添加一个按钮来触发插入操作。

XML 布局文件(activity_main.xml):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".MainActivity">

        <Button
            android:id="@+id/addButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="添加记录"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="16dp"/>

        <EditText
            android:id="@+id/positionEditText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/addButton"
            android:layout_marginTop="16dp"
            android:layout_marginStart="16dp"
            android:layout_marginEnd="16dp"
            android:hint="要插入的位置"
            android:inputType="number"/>

        <Button
            android:id="@+id/insertButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="在指定位置插入"
            android:layout_below="@id/positionEditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="16dp"/>

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/insertButton"
            android:dividerHeight="1dp"/>

        <TextView
            android:id="@+id/noDataText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="无可用数据"
            android:layout_centerInParent="true"
            android:visibility="gone"/> <!-- 初始设置为隐藏 -->

</RelativeLayout>

Java 代码(MainActivity.java):

package com.example.myapplication;

import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private ArrayList<String> dataList;
    private ArrayAdapter<String> adapter;
    private TextView noDataText;
    private EditText positionEditText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button addButton = findViewById(R.id.addButton);
        Button insertButton = findViewById(R.id.insertButton);
        ListView listView = findViewById(R.id.listView);
        noDataText = findViewById(R.id.noDataText);
        positionEditText = findViewById(R.id.positionEditText);

        dataList = new ArrayList<>();
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);
        listView.setAdapter(adapter);

        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addRecord();
            }
        });

        insertButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                insertRecord();
            }
        });
    }

    private void addRecord() {
        dataList.add("新建记录 " + (dataList.size() + 1));
        adapter.notifyDataSetChanged();
        toggleNoDataTextVisibility();
    }

    private void insertRecord() {
        try {
            int position = Integer.parseInt(positionEditText.getText().toString());
            if (position >= 0 && position <= dataList.size()) {
                dataList.add(position, "插入记录 " + (dataList.size() + 1));
                adapter.notifyDataSetChanged();
                toggleNoDataTextVisibility();
            } else {
                Toast.makeText(this, "位置无效", Toast.LENGTH_SHORT).show();
            }
        } catch (NumberFormatException e) {
            Toast.makeText(this, "请输入有效的位置", Toast.LENGTH_SHORT).show();
        }
    }

    private void toggleNoDataTextVisibility() {
        if (dataList.isEmpty()) {
            noDataText.setVisibility(View.VISIBLE);
        } else {
            noDataText.setVisibility(View.GONE);
        }
    }
}

Android ListView 删除数据

ListView 删除数据

从 ListView 中删除某项数据有两种方法

  • 根据对象删除
  • 根据游标(position) 删除

例子:

XML 布局文件(activity_main.xml):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".MainActivity">

        <Button
            android:id="@+id/addButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="添加记录"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="16dp"/>

        <Button
            android:id="@+id/deleteByObjectButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="对象删除"
            android:layout_below="@id/addButton"
            android:layout_alignParentStart="true"
            android:layout_marginStart="16dp"
            android:layout_marginTop="16dp"/>

        <Button
            android:id="@+id/deleteByPositionButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="游标删除"
            android:layout_below="@id/addButton"
            android:layout_alignParentEnd="true"
            android:layout_marginEnd="16dp"
            android:layout_marginTop="16dp"/>

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/deleteByObjectButton"
            android:dividerHeight="1dp"/>

        <TextView
            android:id="@+id/noDataText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="无可用数据"
            android:layout_centerInParent="true"
            android:visibility="gone"/> <!-- 初始设置为隐藏 -->

</RelativeLayout>

Java 代码(MainActivity.java):

package com.example.myapplication;

import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private ArrayList<String> dataList;
    private ArrayAdapter<String> adapter;
    private TextView noDataText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button addButton = findViewById(R.id.addButton);
        Button deleteByObjectButton = findViewById(R.id.deleteByObjectButton);
        Button deleteByPositionButton = findViewById(R.id.deleteByPositionButton);
        ListView listView = findViewById(R.id.listView);
        noDataText = findViewById(R.id.noDataText);

        dataList = new ArrayList<>();
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);
        listView.setAdapter(adapter);

        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addRecord();
            }
        });

        deleteByObjectButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                deleteByObject();
            }
        });

        deleteByPositionButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                deleteByPosition();
            }
        });
    }

    private void addRecord() {
        dataList.add("新建记录 " + (dataList.size() + 1));
        adapter.notifyDataSetChanged();
        toggleNoDataTextVisibility();
    }

    private void deleteByObject() {
        if (!dataList.isEmpty()) {
            // 根据对象删除最后一项数据
            dataList.remove(dataList.size() - 1);
            adapter.notifyDataSetChanged();
            toggleNoDataTextVisibility();
        } else {
            Toast.makeText(this, "无数据可删除", Toast.LENGTH_SHORT).show();
        }
    }

    private void deleteByPosition() {
        if (!dataList.isEmpty()) {
            // 根据游标(position)删除第一项数据
            dataList.remove(0);
            adapter.notifyDataSetChanged();
            toggleNoDataTextVisibility();
        } else {
            Toast.makeText(this, "无数据可删除", Toast.LENGTH_SHORT).show();
        }
    }

    private void toggleNoDataTextVisibility() {
        if (dataList.isEmpty()) {
            noDataText.setVisibility(View.VISIBLE);
        } else {
            noDataText.setVisibility(View.GONE);
        }
    }
}

ListView 清空数据

清空 ListView 数据有两种方式

  • 调用 remove() 方法一项一项的删除
  • 调用 clear() 方法一次性删除

下面我们就写二个按钮 来演示下这两种方法

XML 布局文件(activity_main.xml):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".MainActivity">

        <Button
            android:id="@+id/addButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="添加记录"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="16dp"/>

        <Button
            android:id="@+id/removeOneByOneButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="逐个删除"
            android:layout_below="@id/addButton"
            android:layout_alignParentStart="true"
            android:layout_marginStart="16dp"
            android:layout_marginTop="16dp"/>

        <Button
            android:id="@+id/clearAllButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="一次性删除"
            android:layout_below="@id/addButton"
            android:layout_alignParentEnd="true"
            android:layout_marginEnd="16dp"
            android:layout_marginTop="16dp"/>

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/removeOneByOneButton"
            android:dividerHeight="1dp"/>

        <TextView
            android:id="@+id/noDataText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="无可用数据"
            android:layout_centerInParent="true"
            android:visibility="gone"/> <!-- 初始设置为隐藏 -->

</RelativeLayout>

Java 代码(MainActivity.java):

package com.example.myapplication;

import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private ArrayList<String> dataList;
    private ArrayAdapter<String> adapter;
    private TextView noDataText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button addButton = findViewById(R.id.addButton);
        Button removeOneByOneButton = findViewById(R.id.removeOneByOneButton);
        Button clearAllButton = findViewById(R.id.clearAllButton);
        ListView listView = findViewById(R.id.listView);
        noDataText = findViewById(R.id.noDataText);

        dataList = new ArrayList<>();
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);
        listView.setAdapter(adapter);

        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addRecord();
            }
        });

        removeOneByOneButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                removeOneByOne();
            }
        });

        clearAllButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clearAll();
            }
        });
    }

    private void addRecord() {
        dataList.add("新建记录 " + (dataList.size() + 1));
        adapter.notifyDataSetChanged();
        toggleNoDataTextVisibility();
    }

    private void removeOneByOne() {
        if (!dataList.isEmpty()) {
            dataList.remove(dataList.size() - 1);
            adapter.notifyDataSetChanged();
            toggleNoDataTextVisibility();
        } else {
            Toast.makeText(this, "无数据可删除", Toast.LENGTH_SHORT).show();
        }
    }

    private void clearAll() {
        if (!dataList.isEmpty()) {
            dataList.clear();
            adapter.notifyDataSetChanged();
            toggleNoDataTextVisibility();
        } else {
            Toast.makeText(this, "无数据可清空", Toast.LENGTH_SHORT).show();
        }
    }

    private void toggleNoDataTextVisibility() {
        if (dataList.isEmpty()) {
            noDataText.setVisibility(View.VISIBLE);
        } else {
            noDataText.setVisibility(View.GONE);
        }
    }
}

Android ListView 更改数据

ListView 数据更新

更新 ListView 中的数据有两种办法

  • 根据对象更新
  • 根据游标(pos) 更新

例子:

XML 布局文件(activity_main.xml):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".MainActivity">

        <Button
            android:id="@+id/addButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="添加记录"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="16dp"/>

        <Button
            android:id="@+id/updateByObjectButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="根据对象更新"
            android:layout_below="@id/addButton"
            android:layout_alignParentStart="true"
            android:layout_marginTop="16dp"/>

        <Button
            android:id="@+id/updateByPositionButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="根据游标更新"
            android:layout_below="@id/addButton"
            android:layout_alignParentEnd="true"
            android:layout_marginTop="16dp"/>

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/updateByObjectButton"
            android:dividerHeight="1dp"/>

        <TextView
            android:id="@+id/noDataText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="无可用数据"
            android:layout_centerInParent="true"
            android:visibility="gone"/> <!-- 初始设置为隐藏 -->

</RelativeLayout>

Java 代码(MainActivity.java):

package com.example.myapplication;

import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private ArrayList<String> dataList;
    private ArrayAdapter<String> adapter;
    private ListView listView;
    private TextView noDataText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button addButton = findViewById(R.id.addButton);
        Button updateByObjectButton = findViewById(R.id.updateByObjectButton);
        Button updateByPositionButton = findViewById(R.id.updateByPositionButton);
        listView = findViewById(R.id.listView);
        noDataText = findViewById(R.id.noDataText);

        dataList = new ArrayList<>();
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);
        listView.setAdapter(adapter);

        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addRecord();
            }
        });

        updateByObjectButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                updateByObject();
            }
        });

        updateByPositionButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                updateByPosition();
            }
        });
    }

    private void addRecord() {
        dataList.add("新记录 " + (dataList.size() + 1));
        adapter.notifyDataSetChanged();
        toggleNoDataTextVisibility();
    }

    private void updateByObject() {
        if (!dataList.isEmpty()) {
            // 根据对象更新第一个数据项
            dataList.set(0, "更新的记录 1");
            adapter.notifyDataSetChanged();
            Toast.makeText(this, "根据对象更新成功", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "没有可更新的数据", Toast.LENGTH_SHORT).show();
        }
    }

    private void updateByPosition() {
        if (!dataList.isEmpty()) {
            // 根据游标更新第二个数据项
            int position = 1; // 第二个位置
            if (position >= 0 && position < dataList.size()) {
                dataList.set(position, "更新的记录 2");
                adapter.notifyDataSetChanged();
                Toast.makeText(this, "根据游标更新成功", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "位置无效", Toast.LENGTH_SHORT).show();
            }
        } else {
            Toast.makeText(this, "没有可更新的数据", Toast.LENGTH_SHORT).show();
        }
    }

    private void toggleNoDataTextVisibility() {
        if (dataList.isEmpty()) {
            noDataText.setVisibility(View.VISIBLE);
        } else {
            noDataText.setVisibility(View.GONE);
        }
    }
}

Android ListView 查询数据

ListView 数据查询

例子:

XML 布局文件(activity_main.xml):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".MainActivity">

        <Button
            android:id="@+id/addButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="添加记录"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="16dp"/>

        <EditText
            android:id="@+id/searchEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入查询条件"
            android:layout_below="@id/addButton"
            android:layout_marginTop="16dp"
            android:layout_marginStart="16dp"
            android:layout_marginEnd="16dp"/>

        <Button
            android:id="@+id/searchButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="查询"
            android:layout_below="@id/searchEditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="16dp"/>

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/searchButton"
            android:dividerHeight="1dp"/>

        <TextView
            android:id="@+id/noDataText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="无可用数据"
            android:layout_centerInParent="true"
            android:visibility="gone"/> <!-- 初始设置为隐藏 -->

</RelativeLayout>

Java 代码(MainActivity.java):文章来源地址https://www.toymoban.com/news/detail-836261.html

package com.example.myapplication;

import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private ArrayList<String> dataList;
    private ArrayList<String> originalDataList; // 保存原始数据
    private ArrayAdapter<String> adapter;
    private ListView listView;
    private TextView noDataText;
    private EditText searchEditText;
    private Button searchButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button addButton = findViewById(R.id.addButton);
        searchEditText = findViewById(R.id.searchEditText);
        searchButton = findViewById(R.id.searchButton);
        listView = findViewById(R.id.listView);
        noDataText = findViewById(R.id.noDataText);

        dataList = new ArrayList<>();
        originalDataList = new ArrayList<>(); // 初始化原始数据列表
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);
        listView.setAdapter(adapter);

        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addRecord();
            }
        });

        searchButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                searchRecords();
            }
        });

        searchEditText.addTextChangedListener(textWatcher);
    }

    private final TextWatcher textWatcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {}

        @Override
        public void afterTextChanged(Editable s) {
            // 每次文本发生变化时不自动查询
        }
    };

    private void addRecord() {
        originalDataList.add("新记录 " + (originalDataList.size() + 1)); // 添加记录到原始数据列表
        if (searchEditText.getText().toString().isEmpty()) {
            // 如果查询条件为空,则更新列表
            updateList(originalDataList);
        }
        searchRecords(); // 执行查询操作
    }

    private void searchRecords() {
        String query = searchEditText.getText().toString().trim().toLowerCase();
        List<String> filteredList = new ArrayList<>();
        for (String record : originalDataList) {
            if (record.toLowerCase().contains(query)) {
                filteredList.add(record);
            }
        }
        updateList(filteredList);
    }

    private void updateList(List<String> records) {
        dataList.clear();
        dataList.addAll(records);
        adapter.notifyDataSetChanged();
        toggleNoDataTextVisibility();
    }

    private void toggleNoDataTextVisibility() {
        noDataText.setVisibility(dataList.isEmpty() ? View.VISIBLE : View.GONE);
    }
}

到了这里,关于学习Android的第十七天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 学C的第二十七天【指针的进阶(三)】

    学C的第二十七天【指针的进阶(三)】

    ========================================================================= 相关代码gitee自取 :C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 学C的第二十六天【指针的进阶(二)】_高高的胖子的博客-CSDN博客  ================================

    2024年02月16日
    浏览(17)
  • 【力扣刷题 | 第十七天】

    【力扣刷题 | 第十七天】

    目录 前言: 55. 跳跃游戏 - 力扣(LeetCode) 45. 跳跃游戏 II - 力扣(LeetCode) 总结:         今天两道类型都是贪心算法,希望可以有所收获 给定一个非负整数数组  nums  ,你最初位于数组的  第一个下标  。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断

    2024年02月15日
    浏览(12)
  • 30天精通Nodejs--第十七天:express-路由配置

    上篇文章我们简单介绍了express的基础用法,包括express的安装、创建路由及项目启动,对express有了一个基础的了解,这篇开始我们将详细介绍express的一些高级用法。 本篇文章介绍express的路由配置的用法。 上篇文章中我们在hello world中写了一个简单的get请求,除了get请求方式

    2024年01月22日
    浏览(13)
  • python爬虫-------urllib代理和代理池(第十七天)

    python爬虫-------urllib代理和代理池(第十七天)

    🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨  嗨嗨嗨,兄弟姐妹们。我是喔的嘛呀。今天的学习内容是:爬虫 urllib代理和代理池 目录 一、爬虫 urllib——代理

    2024年04月14日
    浏览(13)
  • 算法第十七天-构造有效字符串的最少插入数

    算法第十七天-构造有效字符串的最少插入数

    考虑abc的个数 假设答案有n个\\\"abc\\\"组成,那么需要插入的字符个数为 3 ∗ n − l e n ( s ) 3*n - len(s) 3 ∗ n − l e n ( s ) 。 对于相邻的两个字符x和y(x在y左侧): 如果 x y xy x y ,那么x和y可以在同一个\\\"abc\\\"内,否则一定不在; 如果 x ≥ y xge y x ≥ y ,那么x和y一定不可以在同一个

    2024年01月17日
    浏览(13)
  • 学习Java的第七天

    学习Java的第七天

    目录 一、什么是数组 二、作用 三、如何使用数组 1、声明数组变量 2、创建数组 示例: 3、数组的使用 示例: 4、数组的遍历 for循环示例(不知道for循环的可以查看我之前发的文章) for-each循环(也就是增强for循环)示例 四、多维数组 语法结构(以二维数组为例):  示例

    2024年03月16日
    浏览(12)
  • 学习Bootstrap 5的第七天

    学习Bootstrap 5的第七天

    目录 徽章 徽章 实例 上下文徽章 实例 胶囊徽章 实例 元素内的徽章 实例 进度条 基础进度条 实例 进度条高度 实例 彩色进度条 实例 条纹进度条 实例 动画进度条 实例 混合色彩进度条 实例 在 Bootstrap 中,徽章(Badges)是一种用于突出显示新的、更新的或有未读项的元素。它

    2024年02月09日
    浏览(10)
  • 从零开始的第十七届智能车主板电源电路解读/设计1(基础四轮组别)

    从零开始的第十七届智能车主板电源电路解读/设计1(基础四轮组别)

            作为一个参加过一年智能汽车的选手(下图是我第一次比赛的母板),当我再次重画电路的时候,仍然是对电路中的元器件作用不是很了解,于是决定开始去了解自己设计的电路而不是只是套用别人现有的设计。         所以作为我学习的记录也抱着分享经验

    2023年04月09日
    浏览(13)
  • 【算法第十七天8.1】530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先

    链接 力扣530-二叉搜索树的最小绝对差 思路 链接 力扣501-二叉搜索树中的众数 思路 链接 力扣236.二叉树的最近公共祖先 思路

    2024年02月14日
    浏览(13)
  • 学习Android的第十一天

    目录 Android ProgressBar 进度条 ProgressBar ProgressBar 外观 ProgressBar 属性 ProgressBar 方法 Android ProgressBar 动图替代圆形进度条 范例 Android ProgressBar 自定义圆环进度条 例子: 参考文档 在Android中,ProgressBar(进度条)是用于显示任务进度的UI组件,通常用于耗时操作的过程中以及需要显

    2024年02月19日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包