Android Studio 微信小程序开发

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

文章目录


前言

安卓开发记录


提示:以下是本篇文章正文内容,下面案例可供参考

一、实现效果图

二、功能说明

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

1.xml文件

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

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

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

而主页面是这样的:

xml文件设计完之后,设计fragement

2.fragment设计

先要设计主fragment

此fragment主要要实现四个次fragment的切换,即点击按钮之后要将四个次fragment隐藏起来,再启用需要展示的fragment,像这样:

public void setLayoutShow(LinearLayout layout,Fragment fragment){
        layout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                fragmentTransaction=fragmentManager.beginTransaction();
                hideAll(fragmentTransaction);
                fragmentTransaction.show(fragment);
                fragmentTransaction.commit();
            }
        });

里面的hideAll是自己定义的方法,作用是将所有的fragment隐藏起来:

public void hideAll(FragmentTransaction fragmentTransaction){
        fragmentTransaction.hide(fragment1);
        fragmentTransaction.hide(fragment2);
        fragmentTransaction.hide(fragment3);
        fragmentTransaction.hide(fragment4);
    }

这样就可以实现点击图片按钮更换界面的效果

再设计其余四个fragment

以第二个为例,首先要绑定好layout文件和对应的recylerView:

View view=inflater.inflate(R.layout.activity_adapter, container, false);  //绑定recyler的layout 
recyclerView= view.findViewById(R.id.recyler);

 绑定好之后,我们现在所需要做的事情就是将数据传递到这个fragment所对应的adapter文件,通过这个adapter文件来在recylerView上显示对应数据,于是我们选择用map来传递数据:

for(int i=0;i<username.length;i++){
            Map<String,Object> map=new HashMap<>();
            map.put("sex",sex[i]);
            map.put("avatar",avtar[i]);
            map.put("username",username[i]);
            list.add(map);
        }

 传到列表里去再传到adapter里:

context=getContext();

        adapter=new Adapter(getContext(),list);

        LinearLayoutManager manager=new LinearLayoutManager(getContext());

        manager.setOrientation(RecyclerView.VERTICAL);

        recyclerView.setAdapter(adapter);

        recyclerView.setLayoutManager(manager);

至此,fragment设计完毕,接下来设计adapter


3.Adapter设计

Adapter主要用来接收fragemnt传过来的数据再设置到recylerView里,先接收一下数据:

public Adapter2(Context context, List<Map<String,Object>> list) {
        this.context=context;
        this.list=list;
    }

再定义一个MyViewHolder,用来表示itemlayout是需要设置的值,例如图片,文字等:

class MyViewHolder extends RecyclerView.ViewHolder{
        TextView textView1,textView2;
        ImageView imageView;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            imageView=itemView.findViewById(R.id.imageView_my_item);
            textView1=itemView.findViewById(R.id.textView_name);
            textView2=itemView.findViewById(R.id.textView_messages);
        }
    }

以第二个页面举例,其要设置三个东西。

再然后通过onCreateViewHolder来将初始化完的viewHolder返回,方便传递数据:

public Adapter2.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        inflater= LayoutInflater.from(context).inflate(R.layout.layout_item2,parent,false);
        return new MyViewHolder(inflater);
    }

最后再在onBindViewHolder中传递数据即可:

public void onBindViewHolder(@NonNull MyViewHolder holder, @SuppressLint("RecyclerView") int position) {
        holder.imageView.setImageResource((Integer) Objects.requireNonNull(list.get(position).get("avatar")));
        holder.textView1.setText(Objects.requireNonNull(list.get(position).get("username")).toString());
        holder.textView2.setText(Objects.requireNonNull(list.get(position).get("message")).toString());
}

至此,我们即可以在页面的recyler中看到对应的值:

4.detail设计

我们要实现点击头像可以跳转到用户详情页面,所以我们先要给每个图片设置一个click方法:

holder.imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(context,MainActivity_detail.class);
                intent.putExtra("avatar", (Integer) Objects.requireNonNull(list.get(position).get("avatar")));
                intent.putExtra("name", Objects.requireNonNull(list.get(position).get("username")).toString());
                intent.putExtra("sex",Objects.requireNonNull(list.get(position).get("sex")).toString());
                context.startActivity(intent);
            }
        });

将值全部传给我们的detail_activity中,再在detail类中设置每个详情值即可:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_detail);
        imageView=findViewById(R.id.imageView_detail);
        textView1=findViewById(R.id.textView_deatil1);
        textView2=findViewById(R.id.textView_detail2);

        imageView.setImageResource(getIntent().getIntExtra("avatar",-1));
        textView1.setText("姓名:"+getIntent().getStringExtra("name"));
        textView2.setText("性别:"+getIntent().getStringExtra("sex"));
    }

得到detail页面:

至此,本次开发完成

代码仓库

android program: 安卓开发作业icon-default.png?t=O83Ahttps://gitee.com/z-y-y12345/android-program

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值