首页 > 编程语言 >5.6为一个activity编写一个滚动界面的.java文件

5.6为一个activity编写一个滚动界面的.java文件

时间:2024-05-06 23:55:24浏览次数:27  
标签:java 5.6 void activity new Override import android public

package com.example.yibaifen;

import static androidx.core.content.ContentProviderCompat.requireContext;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.example.yibaifen.Bean.Zhiyuan;
import com.example.yibaifen.Dao.Mysqldb;

import java.util.ArrayList;
import java.util.List;

public class Findmyzhiyuan extends AppCompatActivity {

// UI组件声明
private TextView textViewSample;
private RecyclerView mRecyclerView;
private MyAdapter mMyAdapter;
private EditText search;
private List<Zhiyuan> myzhiyuanList = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_findmyzhiyuan);
Intent intent = getIntent();
String pub = intent.getStringExtra("pub");

// 初始化UI组件
textViewSample = findViewById(R.id.textViewSample1);
mRecyclerView = findViewById(R.id.rev);
search = findViewById(R.id.search_edit_text);

// 初始化RecyclerView
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));

// 加载数据
loadZhiyuanData();

// 监听搜索框内容变化
search.addTextChangedListener(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) {
filterZhiyuan(s.toString());
}

@Override
public void afterTextChanged(Editable s) {}
});

// 初始化Adapter
mMyAdapter = new MyAdapter(myzhiyuanList);
mRecyclerView.setAdapter(mMyAdapter);
}

private void loadZhiyuanData() {
new Thread(new Runnable() {
@Override
public void run() {
Mysqldb mysqldb = new Mysqldb();
ArrayList<Zhiyuan> zhiyuans = mysqldb.getzhiyuan();

if (zhiyuans != null) {
myzhiyuanList.addAll(zhiyuans);

// 切换到主线程刷新数据
runOnUiThread(new Runnable() {
@Override
public void run() {
mMyAdapter.notifyDataSetChanged();
}
});
}
}
}).start();
}

private void filterZhiyuan(String query) {
new Thread(new Runnable() {
@Override
public void run() {
Mysqldb mysqldb = new Mysqldb();
List<Zhiyuan> foundList = mysqldb.get_find_zhiyuan(query);

// 切换到主线程更新数据
runOnUiThread(new Runnable() {
@Override
public void run() {
myzhiyuanList.clear();
if (foundList != null && !foundList.isEmpty()) {
myzhiyuanList.addAll(foundList);
}
mMyAdapter.notifyDataSetChanged();
}
});
}
}).start();
}

// 自定义Adapter
class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

private List<Zhiyuan> dataList;

public MyAdapter(List<Zhiyuan> dataList) {
this.dataList = dataList;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list2, parent, false);
return new MyViewHolder(itemView);
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
Zhiyuan zhiyuan = dataList.get(position);
holder.bind(zhiyuan);
}

@Override
public int getItemCount() {
return dataList.size();
}

class MyViewHolder extends RecyclerView.ViewHolder {
TextView textView1, textView2, textView3, textView4, textView5;
Button button1;

public MyViewHolder(@NonNull View itemView) {
super(itemView);
textView1 = itemView.findViewById(R.id.textView1);
textView2 = itemView.findViewById(R.id.textView2);
textView3 = itemView.findViewById(R.id.textView3);
textView4 = itemView.findViewById(R.id.textView4);
textView5 = itemView.findViewById(R.id.textView5);
button1 = itemView.findViewById(R.id.button1);
}

void bind(Zhiyuan zhiyuan) {
textView1.setText("标题:" + zhiyuan.biaoti);
textView2.setText("标签:" + zhiyuan.biaoqian);
textView3.setText("地点:" + zhiyuan.didian);
textView4.setText("总需人数:" + zhiyuan.renshu);
textView5.setText("现有人数:" + zhiyuan.crenshu);

// 添加点击事件处理(此处假设button1是用来响应点击加入的操作)
button1.setOnClickListener(v -> {
// 这里处理点击加入的逻辑,例如调用Mysqldb的相关方法进行数据库操作
// ...
});
}
}
}
}

标签:java,5.6,void,activity,new,Override,import,android,public
From: https://www.cnblogs.com/galileo9527/p/18176258

相关文章

  • 5.6
    publicStringloadMetroSystem(MetroSystemmetroSystem){if(!allMetroStationHashMaps.containsKey(metroSystem.getSystemId())){//创建一个新的无向图metroStationGraph,用于表示地铁站点之间的连接关系DefaultEdge.class表示边的类型默认边Graph......
  • 2024.5.6 近期练习
    P3354[IOI2005]Riv河流如果我们设\(f_{u,j}\)表示子树\(u\)内放了\(j\)个伐木场的答案,发现很难转移。我们多加状态,设\(f_{u,i,j}\)表示子树\(u\)放了\(j\)个伐木场,木材全部运到\(i\)去最小代价。\(i\)是\(j\)祖先。继续设\(g_{u,i,j}\)表示\(u\)建了伐......
  • 排查Java反射调用的InvocationTargetExcetion问题
    在Java中通过反射调用方法时,常见的一个异常是:java.lang.reflect.InvocationTargetException,将异常信息打印到日志文件中时通常会有如下一句信息:java.lang.reflect.InvocationTargetException:null,由于在异常信息中存在"null",一开始就会非常敏感,会误以为是空指针异常。其实不然,从......
  • 什么是Java内存模型(JMM)?
    什么是Java内存模型(JMM)?一、JMM的相关概念Java内存模型简称JMM(JavaMemoryModel),是Java虚拟机所定义的一种抽象规范,用来屏蔽不同硬件和操作系统的内存访问差异,让java程序在各种平台下都能达到一致的内存访问效果。这里要注意两点:1)JMM是一个抽象的概念,并不是物理上的内存划分。2)J......
  • 如何使用 JavaScript 获取当前页面帧率 FPS
    可以通过计算每秒 window.requestAnimationFrame 的调用频率来做为FPS值。它接收一个回调函数,该回调函数会在浏览器下一次重绘之前执行。所以只要我们循环调用并记录单位时间内的调用次数就能计算当前页面的帧率了。效果展示在线预览-使用JavaScript获取当前页面帧率FP......
  • Java中执行Shell命令
    Java中执行Shell命令Java执行Shell命令返回127引言在Java开发中,我们经常需要调用系统的Shell命令来完成一些特定的任务。然而,有时候执行Shell命令可能会返回一个特定的错误码,比如127。本文将介绍什么是Shell命令返回码,以及当Java执行Shell命令返回127时可能的原因和解决办法。......
  • Ubuntu 22.04.4 LTS 安装java
    记录一次Ubuntu22.04.4LTS安装java检查是否有自带安装jdkdpkg--list|grep-ijdk如果存在则卸载创建安装路径cd/usr/local/mkdirjavacdjava/解压java安装包tar-zxvf/home/to_install/jdk-8u281-linux-x64.tar.gz-C./解压完成后,/usr/local/java目录下......
  • 云原生周刊:Terraform 1.8 发布 | 2024.5.6
    开源项目推荐xlskubectl用于控制Kubernetes集群的电子表格。xlskubectl将GoogleSpreadsheet与Kubernetes集成。你可以通过用于跟踪费用的同一电子表格来管理集群。git-syncgit-sync是一个简单的命令,它将git存储库拉入本地目录,等待一段时间,然后重复。当远程存储库......
  • ETL如何执行Java脚本
    ETLCloud提供了执行 Java 脚本的方式,让用户能够灵活地处理数据并实现各种复杂的数据处理任务。 ETLCloud在数据处理领域的应用优势主要体现在以下几个方面:灵活性:通过执行Java脚本,用户能够灵活定制数据处理逻辑,满足各种不同的业务需求。无论是简单的数据清洗还是复杂的数据......
  • top k 问题 Java解决代码
    topk问题:从10亿个数中选出最大的1万个数,处理方式:用小顶堆,先用1万个数建立小顶堆,再把剩余数从小顶堆里过一遍,每次与堆顶元素比较,小顶堆的堆顶元素是最小的,如果比堆顶元素大就替换堆顶元素,重新生成小顶堆,继续比较直到10亿条数据比完,堆里剩下的就是最大的1万个数。如果是从大量元素......