【发布时间】:2022-08-03 13:32:49
【问题描述】:
我的 CardLayout 上有一个“保存”选项,用户可以在其中单击“保存”并将其保存到另一个片段中。
单击“保存”时,应将可绘制图标“心脏”更改为另一个可绘制对象。目前,单击“保存”(如下所示)时,我已经成功更改了文本,但我不确定如何更改可绘制对象。
binding.saves.setOnClickListener {
val exist = dbHandler.getTask(task.id)
if(exist) {
Toast.makeText(itemView.context, \"Activity removed\", Toast.LENGTH_SHORT)
.show()
binding.saves.text =\"Save\"
dbHandler.deleteFavorite(task);
}else{
Toast.makeText(itemView.context, \"Activity added\", Toast.LENGTH_SHORT)
.show()
dbHandler.addFavorite(task);
binding.saves.text =\"Saved\"
}
}
binding.saves.text =\"Saved\" 在下面的 XML 中更改了我的 android:text=\"@string/save\"。
我的 XML:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<androidx.cardview.widget.CardView xmlns:android=\"http://schemas.android.com/apk/res/android\"
xmlns:app=\"http://schemas.android.com/apk/res-auto\"
xmlns:tools=\"http://schemas.android.com/tools\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_margin=\"0dp\"
app:cardBackgroundColor=\"@color/white\"
app:cardCornerRadius=\"0dp\"
app:cardElevation=\"0dp\"
app:cardMaxElevation=\"3dp\"
app:cardPreventCornerOverlap=\"true\"
app:cardUseCompatPadding=\"true\"
tools:context=\"ui.CardLayout\">
<RelativeLayout
android:layout_width=\"match_parent\"
android:layout_height=\"wrap_content\"
>
<TextView
android:id=\"@+id/idActivityName\"
android:layout_width=\"match_parent\"
android:layout_height=\"wrap_content\"
android:layout_marginLeft=\"10dp\"
android:layout_marginTop=\"14dp\"
android:layout_marginRight=\"10dp\"
android:text=\"@string/placeholdertasktitle\"
android:textColor=\"@color/black\"
android:textSize=\"16sp\"
android:textStyle=\"bold\" />
<TextView
android:id=\"@+id/idActivityDescription\"
android:layout_width=\"match_parent\"
android:layout_height=\"wrap_content\"
android:layout_below=\"@id/idActivityName\"
android:layout_marginStart=\"10dp\"
android:layout_marginLeft=\"10dp\"
android:layout_marginTop=\"10dp\"
android:layout_marginEnd=\"10dp\"
android:layout_marginRight=\"10dp\"
android:layout_marginBottom=\"30dp\"
android:drawablePadding=\"2dp\"
android:text=\"@string/activitydescription\"
android:textColor=\"@color/black\"
android:textSize=\"15sp\"
tools:ignore=\"UnknownId\" />
<View
android:id=\"@+id/divider\"
android:layout_width=\"380dp\"
android:layout_height=\"2dp\"
android:layout_below=\"@id/idActivityDescription\"
android:layout_alignStart=\"@id/idActivityName\"
android:layout_centerHorizontal=\"false\"
android:layout_centerVertical=\"false\"
android:background=\"#EDEDED\" />
<LinearLayout
android:id=\"@+id/linLayout\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_below=\"@id/divider\"
android:layout_alignStart=\"@+id/divider\"
android:layout_alignEnd=\"@+id/divider\"
android:gravity=\"center\"
android:orientation=\"horizontal\">
<Button
android:id=\"@+id/saves\"
style=\"@style/cardbutton\"
android:layout_width=\"110dp\"
android:layout_height=\"wrap_content\"
android:background=\"@drawable/cardbutton\"
android:contentDescription=\"@string/saves\"
android:stateListAnimator=\"@null\"
android:text=\"@string/save\"
android:textAlignment=\"center\"
android:textColor=\"#595959\"
android:textSize=\"12sp\"
app:icon=\"@drawable/ic_saves_blank\"
app:iconGravity=\"start\"
app:iconTint=\"#595959\" />
<Button
android:id=\"@+id/calendar\"
style=\"@style/cardbutton\"
android:layout_width=\"110dp\"
android:layout_height=\"wrap_content\"
android:background=\"@drawable/cardbutton\"
android:contentDescription=\"@string/saves\"
android:stateListAnimator=\"@null\"
android:text=\"@string/calendar\"
android:textAlignment=\"center\"
android:textColor=\"#595959\"
android:textSize=\"12sp\"
app:icon=\"@drawable/ic_calendar\"
app:iconTint=\"#595959\"
app:iconGravity=\"start\"/>
<Button
android:id=\"@+id/copyactivity\"
style=\"@style/cardbutton\"
android:layout_width=\"110dp\"
android:layout_height=\"wrap_content\"
android:background=\"@drawable/cardbutton\"
android:contentDescription=\"@string/saves\"
android:stateListAnimator=\"@null\"
android:text=\"@string/copy\"
android:textAlignment=\"center\"
android:textColor=\"#595959\"
android:textSize=\"12sp\"
app:icon=\"@drawable/ic_copytext\"
app:iconGravity=\"start\"
app:iconTint=\"#595959\" />
</LinearLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>
我试过的:
- Binding.saves.image =\"drawable1\" 等,但不确定如何将 binding.saves.text 更改为图像
- 将 \"Button\" 更改为 \"ImageButton\" 并使用 \"state selected\" 等。
我是否需要将我的“按钮”更改为“图像按钮”并这样做?有没有办法只更改图标而不更改绑定中的文本。?
-
抱歉不行。
标签: android android-studio kotlin binding