冲刺第四天

今天继续页面,还剩两天


滑动查询界面
`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);
}
}
}

`

posted @   益百分  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示