如何在安卓中实现启动/停止"button"



我的目标是有一个CardView,当被点击时,它从Start->再次点击Stop,反之亦然。在CardView里面我有两个TextView我想改变当它被点击。这背后的功能是启动前台服务并相应地停止它。

我对布局的想法xml:

<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"> 
<androidx.cardview.widget.CardView
android:id="@+id/cardStartStop">
<TextView
android:id="@+id/txtCardStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/card_start"
app:drawableTopCompat="@drawable/ic_start_black_24dp" />
<TextView
android:id="@+id/txtCardStop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:text="@string/card_stop"
app:drawableTopCompat="@drawable/ic_stop_circle_black_24dp" />
</androidx.cardview.widget.CardView>
</GridLayout>

然后我想以编程方式改变每个TextView的可见性,并在关闭和重新打开应用程序时使用SharedPreferences坚持其状态。我的问题更多的是在设计层面,是否有更好的方法来实现这一点,或者我指向正确的方向?

添加一个TextViewsetOnClickListener

XML文件

<androidx.cardview.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Start"
android:id="@+id/text_start_stop"
/>
</androidx.cardview.widget.CardView>

private TextView tStartStop;
Boolean flag = true;

ClickEvent

tStartStop = findViewById(R.id.text_start_stop);
tStartStop.setOnClickListener(view -> {
if (flag) {
flag = false;
tStartStop.setText("Start");
} else {
flag = true;
tStartStop.setText("Stop");
}
});

相关内容

  • 没有找到相关文章

最新更新