gpt4 book ai didi

android - 在 kotlin 中如何创建个人资料图片并将联系人姓名的首字母显示为离线短信应用程序中的个人资料图片?

转载 作者:搜寻专家 更新时间:2023-11-01 09:19:46 25 4
gpt4 key购买 nike

我必须创建离线应用程序,我想在联系人姓名上附加个人资料图片,并将第一个字母作为个人资料图片。但我不知道如何编码。 **Screenshot of the running app on mobile.**

我已经搜索过,但一无所获。

1.

class Inbox : AppCompatActivity(){

private val requestReceiveSms: Int =1
private val requestReadSms: Int = 2

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.readsms)

if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.SEND_SMS) !=
PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
this, arrayOf(android.Manifest.permission.SEND_SMS,android.Manifest.permission.READ_CONTACTS),
requestReadSms
)
} else {
refreshSmsInbox()
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>,
grantResults: IntArray) {
if(requestCode == requestReadSms) refreshSmsInbox()
}

private fun refreshSmsInbox() {

val smsList = ArrayList<SmsData>()

val cursor = contentResolver.query(Uri.parse("content://sms/inbox"),null,null,null,null)

if(cursor!!.moveToFirst()){

val nameID = cursor.getColumnIndex("address")

val messageID = cursor.getColumnIndex("body")

val dateID = cursor.getColumnIndex("date")

do{

val dateString = cursor.getString(dateID)

smsList.add(SmsData(cursor.getString(nameID),cursor.getString(messageID),Date(dateString.toLong()).toString()))
}while (cursor.moveToNext())

}

cursor.close()

val adapter = ListAdapter(this, smsList)

sms_list_view.adapter = adapter
}


}

XML 文件

2.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView

android:id="@+id/sms_list_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="6"
tools:ignore="Suspicious0dp"></ListView>
</LinearLayout>

预期

个人资料图片以及联系人姓名。

实际结果

只是联系人姓名。

最佳答案

您可以在 ListView 的项目布局中放置一个 TextView。现在我们为这个 TextView 设置一个圆形的彩色背景。首先,我们为我们的 TextView 定义一个背景 drawable

profile_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item>
<shape android:shape="oval">
<solid android:color="@android:color/holo_blue_bright"/>
</shape>
</item>

</selector>

我们将此背景设置为 ListView 项目布局中的 TextView

listview_item_layout.xml

<TextView
android:id="@+id/profile_text"
android:layout_width="56dp"
android:layout_height="56dp"
android:background="@drawable/sample"
/>

现在,我们需要将 nameId 的首字母设置为这个 TextView

val firstLetter = nameId.subString( 0 , 1 ).toUpperCase()
profile_text.text = firstLetter

关于android - 在 kotlin 中如何创建个人资料图片并将联系人姓名的首字母显示为离线短信应用程序中的个人资料图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57243232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com