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