获取 Android Studio 中 onItemClickListener 中每一行的 id
Posted
技术标签:
【中文标题】获取 Android Studio 中 onItemClickListener 中每一行的 id【英文标题】:get id of each row in onItemClickListener in Android Studio 【发布时间】:2021-05-26 14:03:25 【问题描述】:我需要获取listview.onItemClickListener 中每一行的id。使用位置会更容易,但我需要在我的应用程序中使用搜索栏。位置的问题是,如果我搜索 item2 并按下它,onItemClickListener 将看到它在行中的第一个(位置 0),它将设置布局 1 而不是布局 2。 我考虑过获取每一行的 Id 或类似的东西,并根据 id 设置布局。 我在谷歌上搜索过,但我似乎没有找到任何有用的东西
我该怎么做
我的主要活动:
package com.biskyy.caietdecantarikt
import android.content.Intent
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.view.Menu
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity()
private lateinit var adapter: ArrayAdapter<*>
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(findViewById(R.id.toolbar))
val filter = findViewById<View>(R.id.srcFilter) as EditText
adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, resources.getStringArray(R.array.cntArrays))
lv_listView.adapter = adapter
lv_listView.onItemClickListener = AdapterView.OnItemClickListener parent, view, position, id ->
// val item: MainActivity = adapter.getItem(position) as MainActivity
when(position)
0 ->
val intCantare = Intent(this, cantare::class.java).apply
putExtra("layout", R.layout.cnt1)
startActivity(intCantare)
lv_listView.emptyView = tv_emptyTextView
filter.addTextChangedListener(object : TextWatcher
override fun beforeTextChanged(
s: CharSequence,
start: Int,
count: Int,
after: Int
)
override fun onTextChanged(
s: CharSequence,
start: Int,
before: Int,
count: Int
)
adapter.filter.filter(s)
override fun afterTextChanged(s: Editable)
)
override fun onCreateOptionsMenu(menu: Menu?): Boolean
menuInflater.inflate(R.menu.menu_main, menu)
return super.onCreateOptionsMenu(menu)
【问题讨论】:
【参考方案1】:lv_listView.onItemClickListener = AdapterView.OnItemClickListener 父级、视图、位置、id->
使用这个ID
【讨论】:
我该如何使用它?我在谷歌上搜索但没有。或者我只是瞎了 我想出了如何使用 Id 但我仍然有这个问题“位置的问题是,如果我搜索 item2 并按下它,onItemClickListener 将看到它在行中的第一个(位置 0),它将设置布局 1 而不是布局 2。" 在这种情况下,只在适配器内部创建一个点击监听器。示例:- site-valley.com/2021/02/10/…以上是关于获取 Android Studio 中 onItemClickListener 中每一行的 id的主要内容,如果未能解决你的问题,请参考以下文章
android studio 从服务中获取 Activity 对象
在 Android Studio Firestore 中获取查询时出现错误
在 AsynTask (Android Studio) 中获取 EOFException [重复]