仿微信添加群聊界面——addView

本文介绍了如何模仿微信添加群聊界面,通过addView动态显示头像。文中解决了listview与checkbox的混乱问题,并提供了简单的代码实现和效果展示。源码可在CSDN下载。
摘要由CSDN通过智能技术生成

发现一个listview和checkbox混乱的bug,现已解决,见博客ListView和CheckBox的混乱问题

当然这一篇主要是在说addview,也是可以看看。

微信大家都用过,微信里添加群聊时点击好友可以将头像动态显示到搜索栏中,最近项目中做了个模仿这个的,不知道微信用的是什么,我使用的是addView。先看效果图。
这里写图片描述
这里写图片描述

实现比较简单,就是个listview,里面加了checkbox。下面是代码

public class MainActivity extends ActionBarActivity {
   

    // 可滑动的显示选中用户的View
    private LinearLayout menuLinerLayout;

    private ListView listView;
    private List<User> allUserList;
    private EditText editText;
    private TextView tv_checked;
    private ImageView iv_search;
    private ListAdapter adapter;
    private List<String> addList = new ArrayList<String>();
    private int total = 0;

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

    private void initData() {
        final User angelbaby = new User("angelbaby",R.mipmap.a1);
        User tangyan = new User("唐嫣",R.mipmap.a2);
        User zhaoliying = new User("赵丽颖",R.mipmap.a3);
        User gaoyuanyuan = new User("高圆圆",R.mipmap.a4);
        User cat = new User("一只猫",R.mipmap.a5);
        allUserList = new ArrayList<User>();
        allUserList.add(angelbaby);
        allUserList.add(tangyan);
        allUserList.add(z
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
如果你想在 `ViewPager` 中添加一个按钮,用于在最后一页跳转到主界面,可以采取以下步骤: 1. 在你的 `ViewPager` 中,添加一个额外的页面,用于显示最后一页,该页面应该包含你的进入主界面按钮。 2. 创建一个自定义适配器类,继承自 `PagerAdapter`,并重写以下方法: - `getCount()` 方法,用于返回页面数量。在这个方法中,你需要返回 `ViewPager` 中页面的数量加 1,这个额外的页面用于显示最后一页。 - `instantiateItem()` 方法,用于创建页面。在这个方法中,你需要检查当前位置是否是最后一页,如果是,就创建你的最后一页,否则就创建普通的页面。 3. 在你的最后一页中,添加一个进入主界面的按钮,并在点击事件中执行跳转主界面逻辑。 下面是一个示例代码: ```java public class MyPagerAdapter extends PagerAdapter { private Context mContext; public MyPagerAdapter(Context context) { mContext = context; } @Override public int getCount() { // 返回页面数量加 1,用于显示最后一页 return 3 + 1; } @Override public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = LayoutInflater.from(mContext); View view; if (position == 3) { // 如果是最后一页,创建包含进入主界面按钮的页面 view = inflater.inflate(R.layout.last_page_layout, container, false); Button enterButton = view.findViewById(R.id.enter_button); enterButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 执行跳转主界面逻辑 Intent intent = new Intent(mContext, MainActivity.class); mContext.startActivity(intent); } }); } else { // 如果是普通页面,创建普通页面 view = inflater.inflate(R.layout.normal_page_layout, container, false); // 设置页面内容 } container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } } ``` 在上面的代码中,`R.layout.last_page_layout` 应该是你创建的包含进入主界面按钮的布局文件,`R.id.enter_button` 应该是你的进入主界面按钮的资源 ID。你需要将这两个值替换为你自己的值。注意,在点击事件中,你需要将 `MainActivity.class` 替换为你自己的主界面类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值