我创建了一个列表视图,我想将数据从MainActivity发送到UpdateActivity以显示其中的数据,但当我点击listView中的任何项目时,显示所有项目的位置为0的项目 例如,我点击了位置为4的项目,显示了位置0的项目 问题出在哪儿 MainActivity中的代码
int mypos = 0;
List<Employee> list;
MyAdapter adapter;
ListView lv;
这是用于ListView的onClickListener的代码我将位置设置为mypos以获取项目的位置
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Employee e=list.get(position);
Intent intent = new Intent(getApplicationContext(),ShowdActivity.class);
intent.putExtra("MobileId",e.getId());
intent.putExtra("MobileName",e.getName());
intent.putExtra("image",e.getImg());
startActivity(intent);
mypos = position;
}
});
这是contextMenu的代码,用于将数据发送到UpdateActivity的更新项
@Override
public boolean onContextItemSelected(MenuItem item) {
Employee e=list.get(mypos);
switch (item.getItemId()){
case R.id.updateOp:
Intent intent = new Intent(getApplicationContext(),updateActivity.class);
intent.putExtra("MobileId",e.getId());
intent.putExtra("MobileName",e.getName());
intent.putExtra("image",e.getImg());
startActivity(intent);
break;
最后,这是updateActivity重新传输数据并显示它的代码
public class updateActivity extends AppCompatActivity {
ImageView imageUpdate;
EditText idUpdate;
EditText nameUpdate;
Button saveUpdate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_update);
imageUpdate = findViewById(R.id.imageEdit);
idUpdate = findViewById(R.id.idEdit);
nameUpdate = findViewById(R.id.nameEdit);
saveUpdate = findViewById(R.id.saveButton);
int idupdate = getIntent().getIntExtra("MobileId",0);
int imagupdate = getIntent().getIntExtra("image",0);
imageUpdate.setImageResource(imagupdate);
idUpdate.setText(idupdate+"");
nameUpdate.setText(getIntent().getStringExtra("MobileName"));
}
}