2016-06-15 5 views
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()); 
} 
+1

適切な方法です。ドキュメントを読むと、基本的には、クリックされた位置にカーソルが移動します。それ以外の場合、うまく動作するはずです。お知らせ下さい。私は喜んでお手伝いします。 –

+0

私は前に行う文字列new_id ... cursor.moveToPosition(cursor.getPosition());何も変更されていない前に –

+0

このコードをonClickListenerの上に貼り付けます。 final int position = cursor.getPosition(); その後、onClickListenerペーストで: cursor.moveToPosition(position); –

答えて

0
int position=(Integer)view.getTag(); 
cursor.moveToPosition(position); 

あるだけ)カーソル法、cursor.moveToPosition(呼び出しonClickListenerで

関連する問題