第九周周五(冲刺第五天)
今天:完成了菜单界面,写了四个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; } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2023-04-26 汉诺塔问题(递归)