0
私は単純なカーソルアダプタに基づいてリストビューを持っています。ImageButtonがAndroidのListViewアイテム内でクリックされたときにsqlite行IDをリフレッシュする方法
私のカスタムリストビューアイテムにはTextViewとImageButtonがあります。
私はListView項目を選択して、私はB.
という名前の別の活動にすべてがうまく動作しますので、遠くに行きます。 ImageButtonをクリックすると、異なるリストビュー項目の同じデータを持つ異なるアクティビティBが表示されます。
最初に別のListViewアイテムを選択した場合にのみ、適切なデータで異なるアクティビティBが取得されます。 ImageButtonをクリックしたときに同じID、を保持しているので、idを更新する方法はありますか?
アダプタ
public void bindView(View view, final Context context, final Cursor cursor) {
TextView tmName = (TextView) view.findViewById(R.id.txtTeamName);
tmName.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(1))));
TextView tmOp = (TextView) view.findViewById(R.id.txtTeamOpponent);
tmOp.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(2))));
TextView tmDate = (TextView) view.findViewById(R.id.txtTeamDate);
tmDate.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(3))));
TextView tmVe = (TextView) view.findViewById(R.id.txtTeamVenue);
tmVe.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(4))));
ImageButton Edit = (ImageButton) view.findViewById(R.id.imgEdit);
Edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
String new_id = cursor.getString(cursor.getColumnIndex(cursor.getColumnName(0)));
Intent myIntent = new Intent(context, PlayerActivity.class);
myIntent.putExtra("TID", new_id);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
}
});
view.setTag(cursor.getPosition());
}
適切な方法です。ドキュメントを読むと、基本的には、クリックされた位置にカーソルが移動します。それ以外の場合、うまく動作するはずです。お知らせ下さい。私は喜んでお手伝いします。 –
私は前に行う文字列new_id ... cursor.moveToPosition(cursor.getPosition());何も変更されていない前に –
このコードをonClickListenerの上に貼り付けます。 final int position = cursor.getPosition(); その後、onClickListenerペーストで: cursor.moveToPosition(position); –