. f Android Jetpack compose- Android Listview using Jetpack compose | Jetpack compose listview clicklistener ~ Android Developers Blog

Friday, 24 September 2021

Android Jetpack compose- Android Listview using Jetpack compose | Jetpack compose listview clicklistener

 Hello all, 
        Today I am going to share my anothere Android Jetpack Compose tutoria.
How to set clicklistener on listview in android Jetpack Compses, how to set clicklistener 
on button using Jetpack Compse.



I am sharing below code where I am handling list item click in jetpack compose.

package com.example.composesample
import android.content.Context
import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import java.util.*
import kotlin.collections.ArrayList
class MainActivity : ComponentActivity() {
private val showDialog = mutableStateOf(false)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val users = ArrayList<User>()
users.add(User("Mukesh Yadav",30,"himky02@gmail.com","955xxxxx59"))
users.add(User("ABC Limited",30,"abc@gmail.com","880xxxxx53"))
users.add(User("XYZ LTD",30,"xyz@gmail.com","966xxxxx59"))
users.add(User("Muesh",30,"mukesh@gmail.com","955xxxxx99"))
users.add(User("Android",30,"android@gmail.com","955xxxxx89"))
users.add(User("Developer",30,"developer@gmail.com","955xxxxx49"))
LazyColumnDemo(LocalContext.current, users)
}
}
}
@Composable
fun LazyColumnDemo(context: Context, users: ArrayList<User>) {
LazyColumn(modifier = Modifier.fillMaxHeight()) {
items(items = users, itemContent = { item ->
ListItemView(context, item)
})
}
}
@Composable
fun ListItemView(context: Context, user: User) : Unit {
Card(
backgroundColor = Color.White,
elevation = Dp(2F),
modifier = Modifier
.padding(all = 16.dp)
.clickable {
cardViewCallBack(context, user)
}
) {
Column(modifier = Modifier
.fillMaxWidth()
.padding(all = 8.dp)) {
user.name?.let { Text(text = it,
modifier = Modifier.padding(all = 4.dp),
textAlign = TextAlign.Start,
fontSize = 22.sp,
color = Color.Black) }
user.email?.let { Text(text = it,
modifier = Modifier.padding(all = 4.dp),
textAlign = TextAlign.Start,
fontSize = 22.sp,
color = Color.Blue) }
user.age?.let { Text(text = it.toString(),
modifier = Modifier.padding(all = 4.dp),
textAlign = TextAlign.Start,
fontSize = 22.sp,
color = Color.Green) }
user.phone?.let { Text(text = it,
modifier = Modifier.padding(all = 4.dp),
textAlign = TextAlign.Start,
fontSize = 22.sp,
color = Color.Gray) }
}
}
}
fun cardViewCallBack(context: Context, user: User) {
Toast.makeText(context,"Hello ${user.name}",Toast.LENGTH_SHORT).show()
}
@Preview
@Composable
fun DefaultPreview() {
LazyColumnDemo(
LocalContext.current,
Arrays.asList(User("Mukesh Yadav",30,"himky02@gmail.com","955xxxxx59")) as ArrayList<User>
)
}
view raw MainActivity.kt hosted with ❤ by GitHub

Downlaod complete code from here
Hope this will help someone.
Enjoy Coding....... :)

Mukesh Kumar

Hi Guys I am from Delhi working as Web/Mobile Application Developer(Android Developer), also have knowledge of Roboelctric and Mockito ,android test driven development... Blogging has been my passion and I think blogging is one of the powerful medium to share knowledge and ideas....

0 comments:

Post a Comment

 

Copyright @ 2013 Android Developers Blog.