1

カスタム カーソル アダプタを使用してローカル データベースからデータを取得ListViewし、.ActivityListActivityListView

lv.setOnItemClickListener(new OnItemClickListener()
{
   @Override
   public void onItemClick(AdapterView<?> arg0, View view, int position, long id)
      {
            Log.i(tag, "position = " + position);
        Log.i(tag, "id is : " + id));
      }
});

データベースの列が次のとおりであると仮定します。

ID、名前、姓、生年月日、身長、性別、生年月日、婚姻状況。

ただし、リストビュー (row.xml) には名前と姓のみを表示しています。しかし、ユーザーがリスト内の特定の行をクリックするたびに、クリックされた行の ID や性別など、残りのデータも取得したいと考えています。

問題は、リストのデータベース行からすべての情報を表示していないことですが、ユーザーがリストを押したときに、そのリストのデータの一部を取得する必要があります。どうすればここでそれを行うことができますか?

私はListActivityではなく、Activityだけであるため、以下の方法は機能しません。

public void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position,  id);

Cursor c = ((SimpleCursorAdapter)l.getAdapter()).getCursor();
c.moveToPosition(position);
//get the data...
}
4

2 に答える 2

4

あなたのarg0パラメータOnItemClickListener . ListViewただし、できることは

lv.setOnItemClickListener(new OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> arg0, View view, int position, long id) {
            // This will get the cursor from the adapter, already moved to position
            Cursor cursor = (Cursor) mCursorAdapter.getItem(position)
            //get the data...
      }
});
于 2013-10-06T15:51:26.497 に答える