Android Studio 微信小程序开发

打印 上一主题 下一主题

主题 963|帖子 963|积分 2889

提示:文章写完后,目次可以自动天生,如何天生可参考右边的帮助文档
  
   文章目次

  

  • 媒介
  • 一、实现结果图
  • 二、功能阐明

    • 1.xml文件
    • 2.fragment文件
    • 3.adapter文件
    • 4.deatil文件

  • 总结
  

媒介

安卓开发记录

提示:以下是本篇文章正文内容,下面案例可供参考
一、实现结果图


二、功能阐明

主要功能为由fragment实现的页面间的跳转,以及由recylerView实现的每个页面分页展示数据,最后是由adapter和detail实现的页面详情查看。
1.xml文件


四个activity_adapter代表四个fragement页面布局,中间的main代表主页面布局,下面的四个item体现四个页面的recylerView条目,一个detail是体现第二个页面的细节展示(别的页面没有),以第四个页面举例:

上面是个人详情,下面是功能按钮的RecylerView

而item项目则是左边为应用图标,中间为应用名称,最后为进入的箭头
而主页面是如许的:

xml文件设计完之后,设计fragement
2.fragment设计

先要设计主fragment
此fragment主要要实现四个次fragment的切换,即点击按钮之后要将四个次fragment隐蔽起来,再启用需要展示的fragment,像如许:
  1. public void setLayoutShow(LinearLayout layout,Fragment fragment){
  2.         layout.setOnClickListener(new View.OnClickListener() {
  3.             @Override
  4.             public void onClick(View view) {
  5.                 fragmentTransaction=fragmentManager.beginTransaction();
  6.                 hideAll(fragmentTransaction);
  7.                 fragmentTransaction.show(fragment);
  8.                 fragmentTransaction.commit();
  9.             }
  10.         });
复制代码
里面的hideAll是自己定义的方法,作用是将所有的fragment隐蔽起来:
  1. public void hideAll(FragmentTransaction fragmentTransaction){
  2.         fragmentTransaction.hide(fragment1);
  3.         fragmentTransaction.hide(fragment2);
  4.         fragmentTransaction.hide(fragment3);
  5.         fragmentTransaction.hide(fragment4);
  6.     }
复制代码
如许就可以实现点击图片按钮更换界面的结果
再设计别的四个fragment
以第二个为例,首先要绑定好layout文件和对应的recylerView:
  1. View view=inflater.inflate(R.layout.activity_adapter, container, false);  //绑定recyler的layout
  2. recyclerView= view.findViewById(R.id.recyler);
复制代码
 绑定好之后,我们现在所需要做的事变就是将数据传递到这个fragment所对应的adapter文件,通过这个adapter文件来在recylerView上显示对应数据,于是我们选择用map来传递数据:
  1. for(int i=0;i<username.length;i++){
  2.             Map<String,Object> map=new HashMap<>();
  3.             map.put("sex",sex[i]);
  4.             map.put("avatar",avtar[i]);
  5.             map.put("username",username[i]);
  6.             list.add(map);
  7.         }
复制代码
 传到列表里去再传到adapter里:
  1. context=getContext();
  2.         adapter=new Adapter(getContext(),list);
  3.         LinearLayoutManager manager=new LinearLayoutManager(getContext());
  4.         manager.setOrientation(RecyclerView.VERTICAL);
  5.         recyclerView.setAdapter(adapter);
  6.         recyclerView.setLayoutManager(manager);
复制代码
至此,fragment设计完毕,接下来设计adapter

3.Adapter设计

Adapter主要用来吸收fragemnt传过来的数据再设置到recylerView里,先吸收一下数据:
  1. public Adapter2(Context context, List<Map<String,Object>> list) {
  2.         this.context=context;
  3.         this.list=list;
  4.     }
复制代码
再定义一个MyViewHolder,用来体现itemlayout是需要设置的值,比方图片,文字等:
  1. class MyViewHolder extends RecyclerView.ViewHolder{
  2.         TextView textView1,textView2;
  3.         ImageView imageView;
  4.         public MyViewHolder(@NonNull View itemView) {
  5.             super(itemView);
  6.             imageView=itemView.findViewById(R.id.imageView_my_item);
  7.             textView1=itemView.findViewById(R.id.textView_name);
  8.             textView2=itemView.findViewById(R.id.textView_messages);
  9.         }
  10.     }
复制代码
以第二个页面举例,其要设置三个东西。
再然后通过onCreateViewHolder来将初始化完的viewHolder返回,方便传递数据:
  1. public Adapter2.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  2.         inflater= LayoutInflater.from(context).inflate(R.layout.layout_item2,parent,false);
  3.         return new MyViewHolder(inflater);
  4.     }
复制代码
最后再在onBindViewHolder中传递数据即可:
  1. public void onBindViewHolder(@NonNull MyViewHolder holder, @SuppressLint("RecyclerView") int position) {
  2.         holder.imageView.setImageResource((Integer) Objects.requireNonNull(list.get(position).get("avatar")));
  3.         holder.textView1.setText(Objects.requireNonNull(list.get(position).get("username")).toString());
  4.         holder.textView2.setText(Objects.requireNonNull(list.get(position).get("message")).toString());
  5. }
复制代码
至此,我们即可以在页面的recyler中看到对应的值:


4.detail设计

我们要实现点击头像可以跳转到用户详情页面,所以我们先要给每个图片设置一个click方法:
  1. holder.imageView.setOnClickListener(new View.OnClickListener() {
  2.             @Override
  3.             public void onClick(View view) {
  4.                 Intent intent=new Intent(context,MainActivity_detail.class);
  5.                 intent.putExtra("avatar", (Integer) Objects.requireNonNull(list.get(position).get("avatar")));
  6.                 intent.putExtra("name", Objects.requireNonNull(list.get(position).get("username")).toString());
  7.                 intent.putExtra("sex",Objects.requireNonNull(list.get(position).get("sex")).toString());
  8.                 context.startActivity(intent);
  9.             }
  10.         });
复制代码
将值全部传给我们的detail_activity中,再在detail类中设置每个详情值即可:
  1. protected void onCreate(Bundle savedInstanceState) {
  2.         super.onCreate(savedInstanceState);
  3.         setContentView(R.layout.activity_main_detail);
  4.         imageView=findViewById(R.id.imageView_detail);
  5.         textView1=findViewById(R.id.textView_deatil1);
  6.         textView2=findViewById(R.id.textView_detail2);
  7.         imageView.setImageResource(getIntent().getIntExtra("avatar",-1));
  8.         textView1.setText("姓名:"+getIntent().getStringExtra("name"));
  9.         textView2.setText("性别:"+getIntent().getStringExtra("sex"));
  10.     }
复制代码
得到detail页面:

至此,本次开发完成
代码堆栈

android program: 安卓开发作业
https://gitee.com/z-y-y12345/android-program

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户国营

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表