2024.05.20

今日编程时长:4小时

代码行数:613行

发表博客数量:1篇

今天完成了专业主任王老师的极限测试的第一阶段:在手机上实现远程查询mysql数据,数据库的内容都是有老师提供,要求能实现标题名称的模糊匹配。

今天的任务中使用到了两个fragment,这可以这样就可以通过下方的导航栏来实现页面的切换,方便第二阶段的编写。

其次就是安卓中listview的使用,根据要求的不同通过创建每一行的视图来使用适配器进行绑定,这样也方便设置行点击事件。

复制代码
复制代码
//主要的功能代码

package com.example.limit_text.fragment;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

import androidx.fragment.app.Fragment;

import com.example.limit_text.Adapter.NameAdpter;
import com.example.limit_text.Pojo.PoilcyPojo;
import com.example.limit_text.PolicyView;
import com.example.limit_text.R;
import com.example.limit_text.util.JDBCUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class FragmentPolicy extends Fragment {
    private EditText key1;
    private Button query;
    private ListView query_result;
    private List<PoilcyPojo> list;
    private NameAdpter nameAdpter;
    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container,
                             Bundle savedInstanceState)
    {
        Log.e("已启动","");
        select();
        View policy =LayoutInflater.from(getActivity()).inflate(R.layout.activity_policy,container,false);
        key1=policy.findViewById(R.id.key1);
        query=policy.findViewById(R.id.query);
        query_result=policy.findViewById(R.id.query_result);
        query.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                select();
            }
        });
        query_result.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent=new Intent(getActivity(), PolicyView.class);
                intent.putExtra("id",list.get(position).getId());
                startActivity(intent);
            }
        });
        return policy;
    }
    private void select()
    {
        list=new ArrayList<>();
        new Thread(new Runnable() {
            @Override
            public void run() {
                Connection coon=null;
                coon= JDBCUtils.getConn();
                String sql;

                if(!key1.getText().toString().isEmpty()) {
                    sql = "select id,name from policy where name like '%"+key1.getText().toString()+"%'";
                }
                else{
                    sql="select id,name from policy";
                }
                try {
                    PreparedStatement ps=coon.prepareStatement(sql);
                    ResultSet resultSet=ps.executeQuery();
                    while (resultSet.next())
                    {
                        PoilcyPojo policy_item=new PoilcyPojo();
                        policy_item.setId(resultSet.getInt(1));
                        policy_item.setName(resultSet.getString(2));
                        list.add(policy_item);
                    }
                    getActivity().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            nameAdpter=new NameAdpter(list,getActivity());
                            query_result.setAdapter(nameAdpter);
                        }
                    });

                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
        }).start();
    }
}
复制代码
复制代码
posted @   new菜鸟  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示