From f67cf3b81a00f732ca743431258ae6b78f5f40ab Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期四, 17 四月 2025 15:05:28 +0800
Subject: [PATCH] 11、我的 切换头像 点击切换头像没有显示允许存储权限的窗口,华为的手机目前有 49、首页 实时刷新 点击全部取件或其他分类后,回到上一层,内容没有刷新(5个分类) 52、数据统计 数据统计 1.周月年的柱状图统计逻辑需要修改为只统计快递类的数据 2.按年的图形统计,右下方加上图示说明 53、首页 首页登录 点击用户协议、隐私政策无反应
---
app/src/main/java/com/example/firstapp/ui/invitation/InvitationActivity.kt | 92 +++++++++++++++++++++++++++++++++++++++-------
1 files changed, 78 insertions(+), 14 deletions(-)
diff --git a/app/src/main/java/com/example/firstapp/ui/invitation/InvitationActivity.kt b/app/src/main/java/com/example/firstapp/ui/invitation/InvitationActivity.kt
index 55d957f..353707d 100644
--- a/app/src/main/java/com/example/firstapp/ui/invitation/InvitationActivity.kt
+++ b/app/src/main/java/com/example/firstapp/ui/invitation/InvitationActivity.kt
@@ -1,13 +1,19 @@
package com.example.firstapp.ui.invitation
+import android.content.ClipData
+import android.content.ClipboardManager
import android.content.Context
+import android.content.Intent
+import android.net.Uri
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.text.Html
import android.util.TypedValue
import android.view.View
+import android.widget.Button
import android.widget.TextView
+import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.LinearSmoothScroller
@@ -16,6 +22,7 @@
import com.example.firstapp.adapter.InvitationAdapter
import com.example.firstapp.adapter.InvitationRecordAdapter
import com.example.firstapp.entity.InvitationRecord
+import com.example.firstapp.utils.PreferencesManager
import kotlin.math.abs
class InvitationActivity : AppCompatActivity() {
@@ -51,6 +58,26 @@
//启动轮播
startAutoScroll()
+
+ //分享
+ val btnInvite = findViewById<Button>(R.id.btnInvite)
+ btnInvite.setOnClickListener {
+ shareImageToWechat()
+ }
+
+ //邀请码
+ val invitationCodeText = findViewById<TextView>(R.id.invitationCodeText)
+ invitationCodeText.text = "A1B2"
+ //invitationCodeText.text = formatInvitationCode(PreferencesManager.getInviteCode());
+ findViewById<Button>(R.id.copyButton).setOnClickListener {
+ val clipboard = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
+ val clip = ClipData.newPlainText(
+ "邀请码",
+ invitationCodeText.text.toString().replace(" ", "") // 复制时去掉空格
+ )
+ clipboard.setPrimaryClip(clip)
+ Toast.makeText(this, "已复制邀请码", Toast.LENGTH_SHORT).show()
+ }
}
private fun initViews() {
@@ -64,12 +91,12 @@
addRecordListener()
}
- private fun addSuccessListener(){
+ private fun addSuccessListener() {
recyclerSuccessView.viewTreeObserver.addOnGlobalLayoutListener {
if (recyclerSuccessView.childCount > 0) {
// 计算预期高度(60dp转px)
val expectedHeight = dpToPx(60f)
- if(itemHeight!= expectedHeight){
+ if (itemHeight != expectedHeight) {
// 修正所有item的高度
for (i in 0 until recyclerSuccessView.childCount) {
recyclerSuccessView.getChildAt(i).layoutParams.height = expectedHeight
@@ -106,12 +133,12 @@
}
}
- private fun addRecordListener(){
+ private fun addRecordListener() {
recyclerRecordView.viewTreeObserver.addOnGlobalLayoutListener {
if (recyclerSuccessView.childCount > 0) {
// 计算预期高度(60dp转px)
val expectedHeight = dpToPx(60f)
- if(itemHeight!= expectedHeight){
+ if (itemHeight != expectedHeight) {
// 修正所有item的高度
for (i in 0 until recyclerSuccessView.childCount) {
recyclerSuccessView.getChildAt(i).layoutParams.height = expectedHeight
@@ -184,11 +211,11 @@
data.clear()
data.addAll(
listOf(
- InvitationRecord("H****e", "获得了1天会员","已注册"),
- InvitationRecord("U****r", "获得了2天会员","已注册"),
- InvitationRecord("A****e", "获得了免广告特权","已注册"),
- InvitationRecord("B****e", "获得了3天会员","已注册"),
- InvitationRecord("C****o", "获得了4天会员","已注册")
+ InvitationRecord("H****e", "获得了1天会员", "已注册"),
+ InvitationRecord("U****r", "获得了2天会员", "已注册"),
+ InvitationRecord("A****e", "获得了免广告特权", "已注册"),
+ InvitationRecord("B****e", "获得了3天会员", "已注册"),
+ InvitationRecord("C****o", "获得了4天会员", "已注册")
)
)
adapter.notifyDataSetChanged()
@@ -198,14 +225,50 @@
recorddata.clear()
recorddata.addAll(
listOf(
- InvitationRecord("M****e", "","未注册"),
- InvitationRecord("Q****r", "","已注册"),
- InvitationRecord("W****e", "","未注册"),
- InvitationRecord("E****e", "","未注册"),
- InvitationRecord("R****o", "","已注册")
+ InvitationRecord("M****e", "", "未注册"),
+ InvitationRecord("Q****r", "", "已注册"),
+ InvitationRecord("W****e", "", "未注册"),
+ InvitationRecord("E****e", "", "未注册"),
+ InvitationRecord("R****o", "", "已注册")
)
)
recordadapter.notifyDataSetChanged()
+ }
+
+ // 分享资源图片到微信
+ private fun shareImageToWechat() {
+ try {
+ // 获取资源图片的URI
+ val imageUri = Uri.parse("android.resource://${packageName}/${R.drawable.location}")
+
+ val intent = Intent().apply {
+ action = Intent.ACTION_SEND
+ type = "image/*"
+ putExtra(Intent.EXTRA_STREAM, imageUri)
+ flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
+ setPackage("com.tencent.mm") // 指定微信包名
+ }
+
+ // 创建选择器,即使微信不可用也能选择其他应用
+ val chooserIntent = Intent.createChooser(intent, "分享邀请图片")
+
+ // 检查是否有应用能处理这个Intent
+ if (intent.resolveActivity(packageManager) != null) {
+ startActivity(chooserIntent)
+ } else {
+ Toast.makeText(this, "未找到可分享的应用", Toast.LENGTH_SHORT).show()
+ }
+ } catch (e: Exception) {
+ Toast.makeText(this, "分享失败: ${e.message}", Toast.LENGTH_SHORT).show()
+ }
+ }
+
+ private fun formatInvitationCode(code: String): String {
+ return if (code.length > 2) {
+ code.chunked(2).joinToString(" ")
+ } else {
+ code
+ }
}
private val scrollRunnable = object : Runnable {
@@ -301,6 +364,7 @@
private fun pxToDp(px: Int, context: Context): Int {
return (px / (context.resources.displayMetrics.density)).toInt()
}
+
private fun dpToPx(dp: Float): Int {
return (dp * resources.displayMetrics.density).toInt()
}
--
Gitblit v1.9.3