如何在Android中的ListView项目中单击ImageButton时刷新sqlite行ID

时间:2016-06-15 07:29:36

标签: android listview android-cursoradapter

我有一个基于简单游标适配器的listview。

我的自定义列表视图项目有一个TextView和一个ImageButton。

当我选择列表视图项目时,我会转到另一个名为B的活动。

到目前为止,一切运作良好。 当我单击我的ImageButton时,我得到了不同的活动B,其中包含相同数据的不同列表视图项。

只有当我最初选择不同的ListView项目时,我才会使用正确的数据获取不同的活动B. 某处它保持相同的ID,所以我在点击ImageButton时如何刷新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 :(得分:0)

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

是正确的方法