栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

点击头像跳转到主页

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

点击头像跳转到主页

点击头像跳转到主页
  • 一、界面设计
  • 二、功能实现
    • 1.基本跳转
    • 2.传入数据
    • 3.结果展示
  • 总结


一、界面设计

由头像所在的activity跳转到主页的activity
跳转后的页面设计如下:
主页层:利用ScrollView实现滚动文本框
歌曲层:目前还没做,计划采用recyclerview



    

        

        

            

            

            

        

        

            

            
        

    

    

    



        

            
        
    
二、功能实现 1.基本跳转

由于头像框所在的recyclerview与适配器的holder绑定,所以头像点击的监听同此前传值,可在绑定函数中实现。

//点击头像跳转到歌手主页
        holder.imageView1.setonClickListener(new View.onClickListener(){
            @Override
            public void onClick(View view) {
                    Integer i=holder.getLayoutPosition();
                    Intent intent=new Intent(view.getContext(),SingerMainActivity1.class);
                    intent.putExtra("position",i.toString());
                    context.startActivity(intent);
            }
        });

在创建intent,要获取当前视图的context。此处采用带有传参的activity跳转,方便歌手页判断歌手对象,将数据导入歌手主页,从而不用建立多个activity来对应不同歌手。

2.传入数据

建立一个歌手主页类,包含各类元素,方便建立list传值

public class SingerPage {
    private int back;
    private int photo;
    private String name;
    private String fans;
    private String type;
    private String intro;
    public SingerPage(int back, int photo,String name,String fans,String type,String intro)
    {
        this.back=back;
        this.photo=photo;
        this.name=name;
        this.fans=fans;
        this.type=type;
        this.intro=intro;
    }
    public int getBack()
    {
        return back;
    }
    public int getPhoto()
    {
        return photo;
    }
    public String getName()
    {
        return name;
    }
    public String getFans()
    {
        return fans;
    }
    public String getType()
    {
        return type;
    }
    public String getIntro()
    {
        return intro;
    }
}

根据点击函数所在activity的传入值(每行的position值)确定主页的内容,此处list只添加了两个歌手主页作为示例。

ImageView ib=findViewById(R.id.imageView6);
        ImageView ip=findViewById(R.id.imageView8);
        TextView tname,tfans,ttype,tintro;
        tname=findViewById(R.id.textView8);
        tfans=findViewById(R.id.textView9);
        ttype=findViewById(R.id.textView10);

        List list=new ArrayList<>();
        SingerPage SingerPage1 = new SingerPage(R.drawable.s1,R.drawable.pa,"痛仰乐队","102.3万粉丝","作词、作曲","成立于1999年的痛仰乐队(Miserable Faith)是当下中国享有声誉的摇滚乐队之一。 组队发行专辑及EP共六张 ,参加各类专场、音乐节演出数百场。2015年,痛仰签约中国最大的独立音乐公司摩登天空。2015年1月1日,乐队专辑《愿爱无忧》获得第六届中国摇滚迷笛奖最佳年度摇滚专辑。2016年9月22日,乐队发布单曲《午夜芭蕾》。2017年3月10日,痛仰乐队“今日青年”百城巡演启动。2018年7月,发布单曲《点石成金》;9月26日,宣布痛仰乐队“永不止步”2018年全国巡演成都站正式开演。2019年,推出歌曲《不是爱情的枪》。 2019年,参加原创音乐综艺节目《乐队的夏天》。2021年9月,乐队与摩登天空合约到期,从此工作事务由痛仰工作室独立运营。");
        list.add(SingerPage1);
        SingerPage SingerPage2 = new SingerPage(R.drawable.s2,R.drawable.pb,"福禄寿FloruitShow","50.1万粉丝","作词、作曲","福禄寿FloruitShow,是一支成立于2018年9月的中国内地独立乐队,由键盘/主唱豆豆(杜冰儿)、竖琴/吉他捏捏(杜雪儿)以及电子/打击乐咪咪(杜飞儿)三位成员组成。2019年,通过摩登天空旗下北河三音乐,福禄寿FloruitShow走上职业乐队的道路。福禄寿FloruitShow是一支成立于2018年9月的中国内地独立乐队,乐队由三胞胎姐妹杜冰儿、杜雪儿和杜飞儿组成。三姐妹均毕业于中国中央音乐学院 。其中,杜冰儿和杜飞儿毕业于作曲系,杜雪儿毕业于管弦系竖琴专业。在乐队中,豆豆杜冰儿担任键盘手和主唱,捏捏杜雪儿主要负责竖琴和吉他,咪咪杜飞儿主要负责合成器以及打击乐。");
        list.add(SingerPage2);

        Intent intent=getIntent();
        String p=intent.getStringExtra("position");

        SingerPage singerpage= (SingerPage) list.get(Integer.parseInt(p));
        ib.setImageResource(singerpage.getBack());
        ip.setImageResource(singerpage.getPhoto());
        tname.setText(singerpage.getName());
        tfans.setText(singerpage.getFans());
        ttype.setText(singerpage.getType());

下面进行点击主页/歌曲的展示(页面切换)参考首次作业

		tz=findViewById(R.id.textViewzhu);
        ts=findViewById(R.id.textViewsong);

        fragmentManager = getFragmentManager();
        FragmentTransaction transaction=fragmentManager.beginTransaction();
        transaction.add(R.id.singer_content,themeFragment);
        transaction.add(R.id.singer_content,songFragment);
        transaction.commit();

        tz.setonClickListener(new View.onClickListener(){
            @Override
            public void onClick(View view) {
                Show(0);
                //写在此处才没有闪退
                TextView t=findViewById(R.id.textView6);
                t.setText(singerpage.getIntro());
            }
        });
        ts.setonClickListener(new View.onClickListener(){
            @Override
            public void onClick(View view) {
                Show(1);
            }
        });
private Fragment themeFragment=new themeFragment();
    private Fragment songFragment=new songFragment();
    FragmentManager fragmentManager;
    TextView tz,ts;
    private void Hide(FragmentTransaction transaction)
    {
        transaction.hide(themeFragment);
        transaction.hide(songFragment);
    }
    private void Show(int i)
    {
        FragmentTransaction transaction=fragmentManager.beginTransaction();
        Hide(transaction);
        switch(i) {
            case 0:
                transaction.show(themeFragment);
                tz.setTextColor(Color.rgb(0, 47, 167));
                ts.setTextColor(Color.BLACK);
                break;
            case 1:
                transaction.show(songFragment);
                ts.setTextColor(Color.rgb(0, 47, 167));
                tz.setTextColor(Color.BLACK);
                break;
            default:
                break;
        }
        transaction.commit();
    }
3.结果展示


总结

点击不同头像进入不同主页,开始想的是在绑定函数中判断item的position,跳转到不同的activity。但是这样太麻烦,需要建立许多activity,传值也不方便。然后想到带有传入值的activity跳转,将position作为传入值给歌手主页activity,同时作为list所取内容的下标,再将list的各个对象对应参数传给控件。
歌手简介在主页层展示,需要在点击“主页”函数中,给对应的textView进行赋值,在其他地方,app出现闪退的情况。
activity的传值,我开始用想直接获取整数发生错误,目前只能获取字符串再转为整数。
gitee源码

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346118.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号