从一个活动传递长类型变量并在另一个活动中接收它并在TextView中显示它

时间:2013-07-29 10:38:55

标签: java android android-intent

我试图将一个长类型的变量从一个活动传递到另一个活动,然后在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);

代码中似乎有一个我无法弄清楚的错误.. 请帮忙。 提前致谢, 等待你的回复...

3 个答案:

答案 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);