冲刺第四天
今天继续页面,还剩两天
滑动查询界面
`package com.example.yibaifen;
import android.annotation.SuppressLint;
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 androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.yibaifen.Bean.Zhiyuan;
import com.example.yibaifen.Dao.Mysqldb;
import java.util.ArrayList;
import java.util.List;
public class HomeFragment extends Fragment {
// UI组件声明(如果有)
private TextView textViewSample;
RecyclerView mRecyclerView;
MyAdapter mMyAdapter ;
EditText search;
List<Zhiyuan> myzhiyuanList = new ArrayList<>();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// 加载Fragment的布局
return inflater.inflate(R.layout.homefragment, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//传入activity数据
Bundle args = getArguments();
String userdata = null;
if (args != null) {
userdata = args.getString("userdata");
}
// 初始化UI组件
textViewSample = view.findViewById(R.id.textViewSample1);
mRecyclerView = view.findViewById(R.id.rev);
search = view.findViewById(R.id.search_edit_text);
//检测search里的变化
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) {
new Thread(new Runnable() {
@Override
public void run() {
Mysqldb mysqldb = new Mysqldb();
List<Zhiyuan> foundList = mysqldb.get_find_zhiyuan(search.getText().toString());
// 将UI更新操作切换回主线程
requireActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
myzhiyuanList.clear();
if (foundList != null && !foundList.isEmpty()) {
myzhiyuanList.addAll(foundList);
}
mMyAdapter.notifyDataSetChanged();
}
});
}
}).start();
}
@Override
public void afterTextChanged(Editable s) {
}
});
// 设置文本或执行其他初始化操作
new Thread(new Runnable() {
@Override
public void run() {
Mysqldb mysqldb = new Mysqldb();
ArrayList<Zhiyuan> zhiyuans = mysqldb.getzhiyuan();
if (zhiyuans != null) {
myzhiyuanList.addAll(zhiyuans);
//将数据刷新工作切换回主线程
requireActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
//刷新rec里的数据
mMyAdapter.notifyDataSetChanged();
}
});
}
}}).start();
textViewSample.setText("您的ID"+userdata);
//设置rec的适配器和布局格式
mMyAdapter = new MyAdapter();
mRecyclerView.setAdapter(mMyAdapter);
LinearLayoutManager layoutManager = new LinearLayoutManager(requireContext());
mRecyclerView.setLayoutManager(layoutManager);
//设置分割线
DividerItemDecoration mDivider = new
DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL);
mRecyclerView.addItemDecoration(mDivider);
// 在这里添加更多初始化逻辑或监听器等
}
//适配器中的内容
class MyAdapter extends RecyclerView.Adapter<MyViewHoder> {
@NonNull
@Override
public MyViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//加载每一行视图
View view = View.inflate(requireContext(), R.layout.item_list, null);
MyViewHoder myViewHoder = new MyViewHoder(view);
return myViewHoder;
}
//设置每一个行的内容
@Override
public void onBindViewHolder(@NonNull MyViewHoder holder, int position) {
Zhiyuan zhiyuans = myzhiyuanList.get(position);
holder.textView1.setText("标题:"+zhiyuans.biaoti);
holder.textView2.setText("标签"+zhiyuans.biaoqian);
holder.textView3.setText("地点:"+zhiyuans.didian);
holder.textView4.setText("总需人数"+zhiyuans.renshu);
holder.textView5.setText("现有人数:"+zhiyuans.crenshu);
//传入activity数据
Bundle args = getArguments();
String userdata = null;
if (args != null) {
userdata = args.getString("userdata");
}
String finalUserdata = userdata;
holder.button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
Mysqldb mysqldb = new Mysqldb();
int flag = 0;
flag =mysqldb.add(zhiyuans.id, finalUserdata);
int finalFlag = flag;
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
if (finalFlag ==0)
{
Toast.makeText(requireContext(),"已经加入过"+zhiyuans.biaoti,Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(requireContext(),"成功加入"+zhiyuans.biaoti,Toast.LENGTH_SHORT).show();
}
}
});
}
}).start();
}
});
}
//返回数据数量
@Override
public int getItemCount() {
return myzhiyuanList.size();
}
}
//每一行的视图里部件导入
class MyViewHoder extends RecyclerView.ViewHolder {
TextView textView1,textView2,textView3,textView4,textView5;
Button button1;
public MyViewHoder(@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);
}
}
}
`
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端