En Android, podemos hacer que un CardView sea verificable, lo que puede ser una función realmente útil. Si queremos que el usuario seleccione algunos elementos y queremos mostrar los elementos que el usuario ha elegido, esta es la característica más importante para nosotros. qué
Implementación paso a paso
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.
Paso 2: trabajar con el archivo Build.Gradle (nivel de aplicación)
Gradle Scripts > build.gradle(Módulo:aplicación)
implementación ‘com.google.android.material:material:1.1.0’
Agregue las extensiones de Android Kotlin dentro de la etiqueta de complementos {} .
complementos {
——–
——–
id ‘kotlin-android-extensiones’
}
Paso 3: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <!--Constraint Layout as the parent layout--> <androidx.constraintlayout.widget.ConstraintLayout 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="match_parent" android:layout_height="match_parent" android:background="#CFCDCD" tools:context=".MainActivity"> <!--Linear Layout as the child layout--> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="15dp" tools:layout_editor_absoluteX="-16dp" tools:layout_editor_absoluteY="-287dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="Long Press to Check" android:textColor="#4CAF50" android:textSize="25sp" android:textStyle="bold" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="1"> <!--CardView for Taj Mahal --> <com.google.android.material.card.MaterialCardView android:id="@+id/cardTajMahal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_weight=".5" android:checkable="true" android:clickable="true" android:focusable="true" android:padding="4dp" app:cardBackgroundColor="@android:color/white" app:cardCornerRadius="7dp" app:cardElevation="3dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="5dp" android:text="Taj Mahal" android:textAppearance="@style/TextAppearance.AppCompat.Headline" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="5dp" android:layout_marginTop="15dp" android:text="It is Ivory White Marbel Statue on South Bank of Yamuna River" android:textAppearance="@style/TextAppearance.AppCompat.Subhead" /> </LinearLayout> </com.google.android.material.card.MaterialCardView> <!--CardView for Statue of Unity --> <com.google.android.material.card.MaterialCardView android:id="@+id/cardStatueOfUnity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="20dp" android:layout_marginTop="20dp" android:layout_weight=".5" android:checkable="true" android:clickable="true" android:focusable="true" android:padding="4dp" app:cardBackgroundColor="@android:color/white" app:cardCornerRadius="7dp" app:cardElevation="3dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="5dp" android:text="Statue Of Unity" android:textAppearance="@style/TextAppearance.AppCompat.Headline" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="5dp" android:layout_marginTop="15dp" android:text="It is a statue of Indian Independence Activist Sardar Vallabh Bhai Patel" android:textAppearance="@style/TextAppearance.AppCompat.Subhead" /> </LinearLayout> </com.google.android.material.card.MaterialCardView> </LinearLayout> <!--Card View for Lotus Temple--> <com.google.android.material.card.MaterialCardView android:id="@+id/cardLotusTemple" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="25dp" android:layout_marginBottom="5dp" android:checkable="true" android:clickable="true" android:focusable="true" android:padding="4dp" app:cardBackgroundColor="@android:color/white" app:cardCornerRadius="7dp" app:cardElevation="3dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/txvLotusTemple" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="5dp" android:text="Lotus Temple" android:textAppearance="@style/TextAppearance.AppCompat.Headline" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="5dp" android:layout_marginTop="15dp" android:layout_marginBottom="15dp" android:text="Notable for its flowerlike shape, located in Delhi, India, is a Baha'i House of worship that was dedicated in December 1986." android:textAppearance="@style/TextAppearance.AppCompat.Subhead" /> </LinearLayout> </com.google.android.material.card.MaterialCardView> <Button android:id="@+id/btnWhatsSelected" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_margin="10dp" android:backgroundTint="#B13C3C" android:text="Show what's selected" android:textAllCaps="false" android:textSize="20sp" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
Paso 4: trabajar con el archivo MainActivity.kt
Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle.
Kotlin
import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.google.android.material.snackbar.Snackbar import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // implementing the long click listener // for when pressed on card view cardTajMahal.setOnLongClickListener { // if the card view is checked,make // it unchecked and vice-versa cardTajMahal.isChecked = !cardTajMahal.isChecked true } // implementing the long click listener // for when pressed on card view cardStatueOfUnity.setOnLongClickListener { cardStatueOfUnity.isChecked = !cardStatueOfUnity.isChecked true } // implementing the long click listener // for when pressed on card view cardLotusTemple.setOnLongClickListener { cardLotusTemple.isChecked = !cardLotusTemple.isChecked true } btnWhatsSelected.setOnClickListener { // getting the info about which // card view has been selected var msg = "" if (cardTajMahal.isChecked) { msg += "'Taj Mahal' " } if (cardStatueOfUnity.isChecked) { msg += "'Statue Of Unity' " } if (cardTajMahal.isChecked) { msg += "'Lotus Temple' " } // snack bar is just like a toast msg Snackbar.make(it, " $msg Selected", Snackbar.LENGTH_LONG).show() } } }
Producción:
Publicación traducida automáticamente
Artículo escrito por lavishgarg26 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA