android - 在Android中如何将ListAdapter值传递给onItemClick?

标签 android listview

我的应用程序上有一个正常运行的搜索界面。现在我试图使每个搜索结果列表项可单击并显示在新 Activity 中。我已经让它们可点击,但我不知道如何将 ListAdapter 值(记录)传递到 onItemClick 方法中。

这是我到目前为止的代码:

private void showResults(String query) {
    Cursor cursor = DBHelper.searchDB(query);
    startManagingCursor(cursor);
    String[] searchFrom = new String[] { DBAdapter.KEY_MAKE,
            DBAdapter.KEY_YEAR, DBAdapter.KEY_MAKE,
            DBAdapter.KEY_MODEL };
    int[] displayHere = new int[] { R.id.rDateTV, R.id.rYearTV,
            R.id.rMakeTV, R.id.rModelTV };

    final SimpleCursorAdapter records = new SimpleCursorAdapter(this,
            R.layout.record_2, cursor, searchFrom, displayHere);

    setListAdapter(records);
    DBHelper.close();

    // --- Click on list item ---


    ListView clickList = getListView(); 
    clickList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> parent, View view, int position, long id)        {
            //--- here's the problem: how do I pass the ListAdapter values into onItemClick. the below doesn't like .getText()
            String sYear = (view.findViewById(R.id.rYearTV)).getText().toString();
            String sMake = (view.findViewById(R.id.rMakeTV)).getText().toString();
            String sModel = (view.findViewById(R.id.rModelTV)).getText().toString();

            // -- then pass these strings to an intent to launch a new activity




        } 
    });


    // --- END click on list item ----

}

有什么想法吗?我是这里的新手,所以如果你能向我展示代码,那就太棒了!

最佳答案

OnItemClickListener.onItemClick中调用parent.getItemAtPosition(position)。该方法返回设置到给定位置的光标。然后从该光标获取数据。不要在 OnItemClickListener.onItemClick 内关闭光标。

例如:

ListView clickList = getListView(); 
    clickList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> parent, View view, int position, long id)        {
            Cursor c = (Cursor)parent.getItemAtPosition(position)
            String sMake = c.getString(c.getColumnIndexOrThrow(DBAdapter.KEY_MAKE));//get data from cursor

           ...
        } 
    });

关于android - 在Android中如何将ListAdapter值传递给onItemClick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12590339/

相关文章:

javascript - 未捕获(在 Promise 中)DOMException : play() can only be initiated by a user gesture

android - wifi连接改变了android中的 Action

Android ListView 滞后于复杂的布局

java - 如何根据ListView中的String值设置TextColor?

android - 使用 CursorAdapter 为 ListView 中的新行设置动画

javascript - 向下/向上滚动时显示白屏

kotlin 中的 Android ViewModelProviderFactory

android - 在 Android 上使用 DI 的具体好处是什么?

android - 我想用 PhoneGap 创建一个 Objective-C 组件

java - 安卓 : getting data from cursor