-1

リスト ビューに表示されている sql lite データベースからデータを取得します。ユーザーがリスト ビューをクリックすると、すべての詳細が自動的に取得され、テキスト フィールドにバインドされる必要があります。 . ジョンという名前でアプリから検索すると、データベースにあるすべてのジョンの選択された詳細がリストビューに表示されます。ユーザーが jhons の 1 つをクリックすると、テキスト フィールドに詳細が表示されるようになります。私は私が望むものをクリアしたことを願っています。そうでない場合は、お気軽にお尋ねください。どなたか助けていただけませんか。よろしくお願いします。

4

3 に答える 3

0

リストビューからデータを取得するために使用しているコード

リストビューの行xmlを作成し、baseAdapterで行をバインドし、そのbaseadapterをリストビューに設定しますリストビューに表示されます

于 2013-02-07T07:04:16.727 に答える
0

これを試して:

my_listview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {              

            }
        });
于 2013-02-07T07:34:10.783 に答える
0

編集

まず、カーソルが正しく作成されていることを確認してください。つまり、アクセスする列が正しいプロジェクションを介してクエリ ステートメントで宣言されていることを確認してください。う

public static final String [] projection= {
    Database.Customers.Media._ID,       
    Database.Customers.Media.NAME,
    Database.Customers.Media.PHONE,
    Database.Customers.Media.EMAIL,
    Database.Customers.Media.ADDRESS,
};

クエリを介してそれを渡します。

Cursor cursor = mContentResolver.query(uri, projection, selection, selectionArgs, sortOrder);

そしてアダプターに:

mAdapter = new YourCustomerAdapter(getActivity(),
                        R.layout.custom_list_view_layout, 
                        mCursor, 
                        from, to, 
                        SampleCursorAdapter.NO_SELECTION);    

アダプターのコードをカスタマイズすれば、from と to は問題になりません。ただし、ストック アダプターを使用すると、データが制限されます。

顧客のオンバインド:

@Override
 public void bindView(View view, Context context, Cursor cursor) {
     ViewHolder mHolder = (ViewHolder) view.getTag();

     if (mHolder == null) {
         mHolder = new ViewHolder();
         mHolder.name= (TextView) view.findViewById(R.id.list_item_name);
         mHolder.phone = (TextView) view.findViewById(R.id.list_item_phone);
     }

     mHolder.name.setText(cursor.getString(1));
     mHolder.phone .setText(cursor.getString(2));

 }

埋めたい uiItem が多いほど、onBind を介して初期化し、カーソル データをそれらに関連付けます。

列インデックス、またはプロジェクションで定義されていない列 (カーソルの一部ではないことを意味する) にアクセスしようとすると、実行時エラーが発生します。

于 2013-02-07T07:09:51.520 に答える