博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类似微信5.x朋友圈的弹出框评论功能
阅读量:7172 次
发布时间:2019-06-29

本文共 3352 字,大约阅读时间需要 11 分钟。

  hot3.png

实现对一个主题评论并显示评论列表,首先想到的是需要使用ListView控件,

下面是layout下的xml布局文件:

    
        
        
    
    
    
    
        
        
            
                
    

然后在Activity类的onCreate方法里,获取ListView的实例,并对每一个item增加监听器

        //为防止layout界面上的EditText在进入页面时就弹出输入法,隐藏软键盘        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);                listView = (ListView)findViewById(R.id.group_discuss_list);        this.discussOnItemClickListener();

每一个item增加监听器的方法discussOnItemClickListener()

 

   /**     * 评论列表被单击后的事件监听     */    private void discussOnItemClickListener() {        //为评论的每一行添加单击事件        listView.setOnItemClickListener(new OnItemClickListener() {            @Override            public void onItemClick(AdapterView
 parent, View view,int position, long id) {                    //获得父贴的发帖人                Map
 posMap = discussList.get(position);                                //设置pusername                pname = posMap.get("username");                                //取得填写评论editText的实例                EditText disInputText = (EditText)findViewById(R.id.group_discuss);                disInputText.setHint("回复" + pname);                                disInputText.requestFocus();                            }                    });                            }

接下来重点说说单击评论图标之后的弹出框,同样在Activity类的onCreate方法中,给评论图标增加onclick监听器,然后增加两个弹出项赞,评论,并且给这两个item增加监听,代码如下:

        groupPopup = (ImageView) findViewById(R.id.group_discuss_popup);        groupPopup.setOnClickListener(titlePopupOnclick);                titlePopup = new TitlePopup(this, Utils.dip2px(this, 165), Utils.dip2px(this, 40));        titlePopup.addAction(new ActionItem(this, "赞", R.drawable.circle_praise));        titlePopup.addAction(new ActionItem(this, "评论",R.drawable.circle_comment));                titlePopup.setItemOnClickListener(this);

     

监听的方法实现

    /**     * 单击评论按钮,弹出菜单的item click 监听     */    @Override    public void onItemClick(ActionItem actionItem,int position) {        //position,0-赞;1-评论        switch(position){        case 0://赞            break;        case 1://评论            EditText disInputText = (EditText)findViewById(R.id.group_discuss);            disInputText.requestFocus();                        break;        default:            break;        }    }

很简单,就是当单击item里的评论时,请求EditText输入框的焦点,调出输入法.

最后我们来说说添加评论功能,demo只是模拟添加了一些评论,真实环境下显然首先需要向服务端提交数据,然后从服务端请求评论列表.demo中只是在Activity类里维护一个全局List简单代替.然后使用一个BaseAdapter的实现类,实现其getView方法来显示出来.

        Map
 map = new HashMap
();        //给map设置要显示的值        map.put("distime", DateUtils.formaterDate2YMDHm(new Date(System.currentTimeMillis())));        map.put("content", content);                //设置父贴的发帖人信息        map.put("puid", puid + "");        map.put("pname", pname);                //设置自己的信息        map.put("uid", uid + "");        map.put("username", username);        discussList.add(map);            ListLazyAdapter adapter = new ListLazyAdapter(this, discussList);                listView.setAdapter(adapter);             //设置adapter

基本上就以上三部分主要功能,可以实现一个简单的单击显示弹出框之后的评论功能.

效果图如下:

160038_H2gd_75789.jpg

160040_oahT_75789.jpg

本文示例源代码下载地址:

http://download.csdn.net/detail/gaolu/7963061

转载于:https://my.oschina.net/ramboo/blog/317427

你可能感兴趣的文章
php 分页原理+分页代码+分页类制作
查看>>
CSS选择器要点笔记
查看>>
python测试框架nose
查看>>
2017 济南综合班 Day 4
查看>>
[USACO Mar08] 牛跑步
查看>>
《呐喊》自序
查看>>
feathers ui 鼠标移出事件
查看>>
Spring Boot项目端口8080被占用的解决方法
查看>>
maven工程下get的URI中带中文名称乱码解决
查看>>
为什么内部类访问的外部变量需要使用final修饰
查看>>
【原创】40亿个数字,找出其中出现过两次的字符
查看>>
《Effective C#》快速笔记(二)- .NET 资源托管
查看>>
MFC DAY10 11 12
查看>>
Security Software Engineer
查看>>
UVa294 Divisors
查看>>
洛谷P3406 海底高铁
查看>>
HTML学习
查看>>
Warriors of the Visual Studio, Assemble! (Visual Studio的勇士们,汇编吧!)
查看>>
使用Aouth2进行身份验证
查看>>
我们有助教啦
查看>>