Android Studio -使用腾讯即时通信

记录

在引入的腾讯第三方插件中自定义弹窗

如题,因为项目中引入了腾讯即时通信模块,但主要的功能都在app模块中,应用平台审核需要腾讯即时通信的模块中也要有举报的功能,然而用户的信息之类的基本都存在了app主模块中,因此需要做一个桥接

解决思路

1先完成两个模块之间的通信
我用的是网友推荐的appjoint
可参考

https://blog.csdn.net/qq_23018457/article/details/110469916

很简单,一遍就过了,在对应的build.gradle添加这个模块即可
然后写一个接口类,一个实现类,在app主模块中实现接口,在需要调用的副模块中通过反射调用接口中的方法即可
2如何自定义
项目中已经有activity的管理类了,不过没有对腾讯即时通信的activity进行添加,所以还需要在对应的activity(我这里的是chatactivity)中添加activty管理类的popactivity这个方法,记录当前所在的activity(在chatactivity中记得要添加一个外界可以访问当前activity的context的方法)
然后在activity管理类中调用currentactivity这个方法获得chatactivity,然后获得他的context,在这个context上添加dialog,以及里面一些对应的信息即可完成,时间关系就贴一下简单的代码吧
这是在app中实现接口类的实现类


@ServiceProvider
public class AppPublicInterface implements MyPublicInterface {
    @Override
    public void showJubakInfo(int type, String userTId, Object data) {


        //这里要获得消息的内容和消息的发出者的id
        //需要弹出一个确定框,让用户确认举报信息是否正确
        ChatActivity currentActivity = (ChatActivity) ActivityManager.getInstance().currentActivity();

        AlertDialog.Builder builder = new AlertDialog.Builder(currentActivity.getContext());
        builder.setTitle("举报");


        final EditText edit = new EditText(currentActivity.getContext());
        builder.setView(edit);
        if (type == 0) {
            edit.setText("举报人: " + UserInfoInstance.getInstance().getRealName() + "\n举报内容: " + data.toString());
        } else if (type == 32) {
            edit.setText("举报人: " + UserInfoInstance.getInstance().getRealName() + "\n您举报的内容为图片,请耐心等待审核结果");
        }else{
            edit.setText("举报人: " + UserInfoInstance.getInstance().getRealName() + "\n您举报的内容为未知内容,请耐心等待审核结果");
        }
        edit.setFocusable(false);
        edit.setEnabled(false);
        edit.setTextAlignment(TEXT_ALIGNMENT_CENTER);
        builder.setPositiveButton("提交", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                ReportPresenter tem = new ReportPresenter();
                tem.report(userTId, data.toString());
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        });
        builder.setCancelable(true);    //设置按钮是否可以按返回键取消,false则不可以取消
        AlertDialog dialog = builder.create();  //创建对话框
        dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
        dialog.show();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淳杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值