• 开发冲刺四


    今天做了聊天页面和加好友界面但是没有添加具体的功能,由于课程较多所以代码量不太大

    ChatInfoActivity.java

    package com.imooc.meet.ui;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.imooc.meet.R;
    import com.liuguilin.framework.base.BaseBackActivity;
    import com.liuguilin.framework.bmob.BmobManager;
    import com.liuguilin.framework.bmob.IMUser;
    import com.liuguilin.framework.entity.Constants;
    import com.liuguilin.framework.event.EventManager;
    import com.liuguilin.framework.helper.GlideHelper;
    import com.liuguilin.framework.manager.DialogManager;
    import com.liuguilin.framework.utils.CommonUtils;
    import com.liuguilin.framework.view.DialogView;
    
    import java.util.List;
    
    import cn.bmob.v3.exception.BmobException;
    import cn.bmob.v3.listener.FindListener;
    import cn.bmob.v3.listener.UpdateListener;
    import de.hdodenhof.circleimageview.CircleImageView;
    
    public class ChatInfoActivity extends BaseBackActivity implements View.OnClickListener {
    
        private CircleImageView iv_photo;
        private TextView tv_name;
        private TextView tv_phone;
        private Button btn_delete;
    
        private String objectId;
    
        private DialogView mDeleteDialog;
        private TextView tvText;
        private TextView tv_confirm;
        private TextView tv_cancel;
    
        public static void startChatInfo(Activity mActivity, String objectId, int requestCode) {
            Intent intent = new Intent(mActivity, ChatInfoActivity.class);
            intent.putExtra(Constants.INTENT_USER_ID, objectId);
            mActivity.startActivityForResult(intent, requestCode);
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_chat_info);
    
            initView();
        }
    
        private void initView() {
    
            initDeleteDialog();
    
            iv_photo = (CircleImageView) findViewById(R.id.iv_photo);
            tv_name = (TextView) findViewById(R.id.tv_name);
            tv_phone = (TextView) findViewById(R.id.tv_phone);
            btn_delete = (Button) findViewById(R.id.btn_delete);
    
            btn_delete.setOnClickListener(this);
            tv_phone.setOnClickListener(this);
    
            objectId = getIntent().getStringExtra(Constants.INTENT_USER_ID);
            if (!TextUtils.isEmpty(objectId)) {
                BmobManager.getInstance().queryObjectIdUser(objectId, new FindListener<IMUser>() {
                    @Override
                    public void done(List<IMUser> list, BmobException e) {
                        if (e == null) {
                            if (CommonUtils.isEmpty(list)) {
                                IMUser imUser = list.get(0);
                                GlideHelper.loadUrl(ChatInfoActivity.this, imUser.getPhoto(), iv_photo);
                                tv_phone.setText(imUser.getMobilePhoneNumber());
                                tv_name.setText(imUser.getNickName());
                            }
                        }
                    }
                });
            }
        }
    
        private void initDeleteDialog() {
            mDeleteDialog = DialogManager.getInstance().initView(this, R.layout.dialog_delete_friend);
            tvText = (TextView) mDeleteDialog.findViewById(R.id.tvText);
            tvText.setText(getString(R.string.text_chat_info_del_text));
    
            tv_confirm = (TextView) mDeleteDialog.findViewById(R.id.tv_confirm);
            tv_confirm.setOnClickListener(this);
    
            tv_cancel = (TextView) mDeleteDialog.findViewById(R.id.tv_cancel);
            tv_cancel.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.tv_phone:
                    Intent intent = new Intent();
                    intent.setAction(Intent.ACTION_CALL);
                    intent.setData(Uri.parse("tel:" + tv_phone.getText().toString().trim()));
                    startActivity(intent);
                    break;
                case R.id.btn_delete:
                    DialogManager.getInstance().show(mDeleteDialog);
                    break;
                case R.id.tv_confirm:
                    DialogManager.getInstance().show(mDeleteDialog);
                    BmobManager.getInstance().deleteFriend(objectId, new UpdateListener() {
                        @Override
                        public void done(BmobException e) {
                            if (e == null) {
                                //刷新列表
                                EventManager.post(EventManager.FLAG_UPDATE_FRIEND_LIST);
                                setResult(RESULT_OK);
                                finish();
                            } else {
                                Toast.makeText(ChatInfoActivity.this, getString(R.string.text_chat_info_del_error) + e.toString(), Toast.LENGTH_SHORT).show();
                            }
                        }
                    });
                    break;
                case R.id.tv_cancel:
                    DialogManager.getInstance().hide(mDeleteDialog);
                    break;
            }
        }
    }

    ChatThemeActivity.java

    package com.imooc.meet.ui;
    
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Toast;
    
    import androidx.recyclerview.widget.GridLayoutManager;
    import androidx.recyclerview.widget.RecyclerView;
    
    import com.imooc.meet.R;
    import com.liuguilin.framework.adapter.CommonAdapter;
    import com.liuguilin.framework.adapter.CommonViewHolder;
    import com.liuguilin.framework.base.BaseBackActivity;
    import com.liuguilin.framework.entity.Constants;
    import com.liuguilin.framework.utils.SpUtils;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class ChatThemeActivity extends BaseBackActivity {
    
        private RecyclerView mThemeView;
        private List<Integer> mThemeList = new ArrayList<>();
        private CommonAdapter<Integer> mThemeAdapter;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_chat_theme);
    
            initView();
        }
    
        private void initView() {
    
            mThemeList.add(R.drawable.img_chat_bg_1);
            mThemeList.add(R.drawable.img_chat_bg_2);
            mThemeList.add(R.drawable.img_chat_bg_3);
            mThemeList.add(R.drawable.img_chat_bg_4);
            mThemeList.add(R.drawable.img_chat_bg_5);
            mThemeList.add(R.drawable.img_chat_bg_6);
            mThemeList.add(R.drawable.img_chat_bg_7);
            mThemeList.add(R.drawable.img_chat_bg_8);
            mThemeList.add(R.drawable.img_chat_bg_9);
    
            mThemeView = (RecyclerView) findViewById(R.id.mThemeView);
            mThemeView.setLayoutManager(new GridLayoutManager(this, 3));
            mThemeAdapter = new CommonAdapter<>(mThemeList, new CommonAdapter.OnBindDataListener<Integer>() {
                @Override
                public void onBindViewHolder(Integer model, CommonViewHolder viewHolder, int type, int position) {
                    viewHolder.setImageResource(R.id.iv_theme, model);
    
                    viewHolder.itemView.setOnClickListener(v -> {
                        SpUtils.getInstance().putInt(Constants.SP_CHAT_THEME, (position + 1));
                        Toast.makeText(ChatThemeActivity.this, "设置成功", Toast.LENGTH_SHORT).show();
                    });
                }
    
                @Override
                public int getLayoutId(int type) {
                    return R.layout.layout_theme_item;
                }
            });
            mThemeView.setAdapter(mThemeAdapter);
        }
    }

    activity_char_theme.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="10dp"
            android:background="@android:color/white"
            android:gravity="center_vertical"
            android:orientation="horizontal"
            android:paddingLeft="10dp">
    
            <de.hdodenhof.circleimageview.CircleImageView
                android:id="@+id/iv_photo"
                android:layout_width="40dp"
                android:layout_height="40dp" />
    
            <TextView
                android:id="@+id/tv_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:text="Name"
                android:textColor="@android:color/black" />
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="10dp"
            android:background="@android:color/white"
            android:gravity="center_vertical"
            android:orientation="horizontal"
            android:paddingLeft="10dp">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/text_login_phone" />
    
            <TextView
                android:id="@+id/tv_phone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:text="Phone"
                android:textColor="@color/colorAccent" />
    
        </LinearLayout>
    
        <Button
            android:id="@+id/btn_delete"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:background="@drawable/chat_info_btn_bg"
            android:text="@string/text_delete"
            android:textColor="@android:color/white" />
    
    </LinearLayout>
  • 相关阅读:
    多线程创建方式及线程安全问题
    JDBC连接池&DBUtils
    mySQL 多表查询语句
    git 本机链接多库配置
    mysql类似递归的一种操作进行层级查询
    js 自定义事件观察者模式(发布/订阅)
    CSS样式遇见的问题总结记录
    maven打包pom.xml备忘
    JasperReports实现报表调出excel
    ActiveMQ 集群配置 高可用
  • 原文地址:https://www.cnblogs.com/yizhixiaozhu/p/12756165.html
Copyright © 2020-2023  润新知