第九周周五(冲刺第五天)

今天:完成了菜单界面,写了四个fragment一个activity

明天:核对接口。

复制代码
package com.example.kydy.Frag;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;

import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.Toast;

import com.example.kydy.BEAN.ChatListBean;
import com.example.kydy.BEAN.ChatListResponse;
import com.example.kydy.BEAN.DFinfo;
import com.example.kydy.BEAN.IPV4;
import com.example.kydy.BEAN.KDinfo;
import com.example.kydy.BEAN.OrderResponse;
import com.example.kydy.BEAN.OrderResponse2;
import com.example.kydy.OrderActivity;
import com.example.kydy.R;
import com.example.kydy.Utils.CallBack;
import com.example.kydy.Utils.OkHttpUtils;
import com.example.kydy.adapter.ChatListAdapter;
import com.example.kydy.adapter.DfAdapter;
import com.example.kydy.adapter.KdAdapter;
import com.example.kydy.adapter.LeftListAdapter;
import com.google.gson.Gson;

import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 * Use the {@link MyOrdersFragment#newInstance} factory method to
 * create an instance of this fragment.
 */
public class ChatListFragment extends Fragment {

    // TODO: Rename parameter arguments, choose names that match
    // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    // TODO: Rename and change types of parameters
    private String mParam1;
    private String mParam2;
    private String username;
    RecyclerView recyclerView;
    ChatListAdapter adapter;
    ListView chat_listview;

    public void setUsername(String username) {
        this.username = username;
    }

    public ChatListFragment() {
        // Required empty public constructor
    }

    /**
     * Use this factory method to create a new instance of
     * this fragment using the provided parameters.
     *
     * @param param1 Parameter 1.
     * @param param2 Parameter 2.
     * @return A new instance of fragment MyOrdersFragment.
     */
    // TODO: Rename and change types and number of parameters
    public static MyOrdersFragment newInstance(String param1, String param2) {
        MyOrdersFragment fragment = new MyOrdersFragment();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }

    @SuppressLint("MissingInflatedId")
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_chat_list, container, false);

        chat_listview = view.findViewById(R.id.chat_listview);
        initData();


        return view;
    }

    private void initData() {

        if (true){
            //
            OkHttpUtils.getInstance().doGet("http://" + IPV4.ipv4 + "/chat/findAll?useSSL=true", new CallBack() {
                @Override
                public void onSuccess(String result) {
                    if (!result.isEmpty()){ //获取成功
                        // 使用 Gson 解析 JSON 数据
                        Gson gson = new Gson();
                        //Type type = new TypeToken<List<KDinfo>>(){}.getType();
                        //List<KDinfo> kDinfoList = gson.fromJson(result, type);
                        ChatListResponse chatListResponse = gson.fromJson(result, ChatListResponse.class);

                        // 获取数据列表
                        List<ChatListBean> chatListBeanList = chatListResponse.getData();

                        // 将其填充到适配器中
                        // 创建一个适配器实例,并将数据传递给它
                        ChatListAdapter chatListAdapter = new ChatListAdapter(getContext(), chatListBeanList, username, getActivity());

                        // 找到 ListView 控件并设置适配器
                        chat_listview.setAdapter(chatListAdapter);

                    } else {
                        Log.d("显示错误", result);
                    }
                }

                @Override
                public void onError(Exception e) {
                    e.printStackTrace();
                    // 登录失败
                    AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
                    builder.setMessage("获取失败,请检查网络设置");
                    builder.setPositiveButton("确定", null);
                    AlertDialog alertDialog = builder.create();
                    alertDialog.show();
                }
            });
            //

        }
    }


}
复制代码
复制代码
package com.example.kydy.Frag;

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.Button;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import com.example.kydy.OrderActivity;
import com.example.kydy.R;

public class HomeFragment extends Fragment implements View.OnClickListener {

    private String username;
    private Button btn_to_kuaidi;
    private Button btn_to_daifan;
    private String type;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_home, container, false);
        initView(view);
        return view;
    }

    private void initView(View view) {
        btn_to_kuaidi = view.findViewById(R.id.btn_to_kuaidi);
        btn_to_daifan = view.findViewById(R.id.btn_to_daifan);

        btn_to_kuaidi.setOnClickListener(this);
        btn_to_daifan.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        if (view.getId() == R.id.btn_to_kuaidi) {
            type = "kd";
            Intent intent = new Intent(getActivity(), OrderActivity.class);
            intent.putExtra("username", username);
            intent.putExtra("type", type);
            startActivity(intent);
        } else if (view.getId() == R.id.btn_to_daifan) {
            type = "df";
            Intent intent = new Intent(getActivity(), OrderActivity.class);
            intent.putExtra("username", username);
            intent.putExtra("type", type);
            startActivity(intent);
        }
    }

    public void setUsername(String username) {
        this.username = username;
    }
}
复制代码
复制代码
package com.example.kydy;

import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;

import com.example.kydy.Frag.ChatListFragment;
import com.example.kydy.Frag.HomeFragment;
import com.example.kydy.Frag.MyOrdersFragment;
import com.example.kydy.Frag.PersonalFragment;
import com.google.android.material.bottomnavigation.BottomNavigationView;

public class MainActivity extends AppCompatActivity {

    private ViewPager2 viewPager;
    private BottomNavigationView bottomNavigationView;
    private String username;

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

        viewPager = findViewById(R.id.viewPager);
        bottomNavigationView = findViewById(R.id.bottomNavigationView);

        initData();

        ViewPagerAdapter adapter = new ViewPagerAdapter(this);
        viewPager.setAdapter(adapter);

        viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);
                switch (position) {
                    case 0:
                        bottomNavigationView.setSelectedItemId(R.id.home);
                        break;
                    case 1:
                        bottomNavigationView.setSelectedItemId(R.id.help);
                        break;
                    case 2:
                        bottomNavigationView.setSelectedItemId(R.id.order);
                        break;
                    case 3:
                        bottomNavigationView.setSelectedItemId(R.id.mine);
                        break;
                }
            }
        });

        bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                int itemId = item.getItemId();
                if (itemId == R.id.home) {
                    viewPager.setCurrentItem(0);
                    return true;
                } else if (itemId == R.id.help) {
                    viewPager.setCurrentItem(1);
                    return true;
                } else if (itemId == R.id.order) {
                    viewPager.setCurrentItem(2);
                    return true;
                } else if (itemId == R.id.mine) {
                    viewPager.setCurrentItem(3);
                    return true;
                }
                return false;
            }
        });

    }

    private void initData() {
        Intent intent = getIntent();
        username = intent.getStringExtra("username");
    }

    private class ViewPagerAdapter extends FragmentStateAdapter {
        public ViewPagerAdapter(@NonNull AppCompatActivity fragmentActivity) {
            super(fragmentActivity);
        }

        @NonNull
        @Override
        public Fragment createFragment(int position) {
            switch (position) {
                case 0:
                    HomeFragment homeFragment = new HomeFragment(); //主页
                    homeFragment.setUsername(username);
                    return homeFragment;
                case 1:
                    ChatListFragment chatFragment = new ChatListFragment();//聊天
                    chatFragment.setUsername(username);
                    return chatFragment;
                case 2:
                    MyOrdersFragment myOrdersFragment = new MyOrdersFragment(); //我的订单  接单和发单
                    myOrdersFragment.setUsername(username);
                    return myOrdersFragment;
                case 3:
                    PersonalFragment personalFragment = new PersonalFragment(); //个人信息
                    personalFragment.setUsername(username); // 设置用户名
                    return personalFragment;
                default:
                    return new HomeFragment();
            }
        }

        @Override
        public int getItemCount() {
            return 4;
        }
    }
}
复制代码

 

posted @   a_true  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2023-04-26 汉诺塔问题(递归)
点击右上角即可分享
微信分享提示