【问题标题】:Contact Application in AndroidAndroid中的联系人应用程序
【发布时间】:2019-10-18 19:56:44
【问题描述】:

我想构建一个联系人应用程序,它从 android 设备中读取联系人并将其显示在列表视图中。单击列表视图项目时,将打开一个新活动,其中将显示联系人的详细信息。我已经显示了列表视图,并且在从 simplecursoradapter 获取数据时遇到了问题。有人可以帮助我使用 setOnItemClickListener() 方法吗?

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        read()
    }
    fun read()
    {
        var cursor : Cursor? = 
  contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
            null,null,null,null)

        startManagingCursor(cursor)
        var selected_columns = arrayOf(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER,
            ContactsContract.CommonDataKinds.Phone._ID)
        var to =  intArrayOf(android.R.id.text1)
        var simple : SimpleCursorAdapter = SimpleCursorAdapter(this,android.R.layout.simple_list_item_1,cursor,selected_columns,to,0)
        my_listview.adapter = simple

        my_listview.setOnItemClickListener { parent, view, position, id ->

            val intent = Intent(this, Contactdetails::class.java)
            startActivity(intent)
        }

    }


   }

【问题讨论】:

    标签: android kotlin android-cursoradapter


    【解决方案1】:

    您不需要从SimpleCursorAdapter 获取数据。就这样做吧:

    my_listview.setOnItemClickListener { parent, view, position, id ->
    
        val intent = Intent(this, Contactdetails::class.java)
        intent.putExtra("CONTACT_DATA" , cursor.getString(position))
        startActivity(intent)
    
    }
    

    【讨论】:

    • cursor.getString(position) 返回什么?实际上我希望将联系人姓名和联系电话发送到另一个活动?你能帮我如何获得这两个字段吗?
    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 2012-02-05
    • 1970-01-01
    • 2013-04-12
    • 2014-12-19
    相关资源
    最近更新 更多