我试图将一个长类型的变量从一个活动传递到另一个活动,然后在TextView中显示它。 我在firstActivity中使用此代码来获取和传输变量:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
long currentId = (long) values.get(position).getId();
Intent edit_acc = new Intent(MainActivity.this, EditAccount.class);
edit_acc.putExtra("data_id", currentId);
startActivity(edit_acc);
}});
我用它来获取EditAccount Activity中的变量:
Intent intent=getIntent();
int id =(int) intent.getExtras().getInt("data_id");
TextView txt_id=(TextView)findViewById(R.id.txt_value_id);
txt_id.setText(id);
代码中似乎有一个我无法弄清楚的错误.. 请帮忙。 提前致谢, 等待你的回复...
答案 0 :(得分:0)
<强> 1 强>
int id =(int) intent.getExtras().getLong("data_id");
<强> 2 强>
作为int类型的id,因此您需要在txt_id.setText(id);
所以你的代码应该是:
<强>或者强>
txt_id.setText(""+id);
或
txt_id.setText(Integer.valueOf(id).toString());
答案 1 :(得分:0)
尝试使用它,这样你就可以正常使用。
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
long id = arg0.getItemIdAtPosition(arg2);
Log.v("id", id+"");
}
});
答案 2 :(得分:-1)
更好地使用这个......在你的第二个Activity中声明一个这样的变量......
public static long dataUse;
现在进行第一次活动
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
long currentId = (long) values.get(position).getId();
EditAccount.dataUsage = currentId;
Intent edit_acc = new Intent(MainActivity.this, EditAccount.class);
startActivity(edit_acc);
}});
现在进入第二个活动
txt_id.setText(dataUse);