【问题标题】:passing the position from listview to new activity将位置从列表视图传递到新活动
【发布时间】:2013-11-03 03:53:09
【问题描述】:

如何将列表视图中所选项目的值或位置传递给新活动,以便使用该值从列表视图中的数据库检索数据(在新活动中)

我有代码可以工作,但总是为已传递的位置传递一个空值。

我的第一个活动代码:

 listView.setOnItemClickListener(new OnItemClickListener() {

          @Override
          public void onItemClick(AdapterView<?> parent,View view,
             int position, long id) {

           // ListView Clicked item index
           int itemPosition     = position;

           // ListView Clicked item value
           String  itemValue    = (String) listView.getItemAtPosition(position);

            // Show Alert HERE THE VALUE IS CORRECT-----
      //     Toast.makeText(getApplicationContext(),
      //        "Position :"+itemPosition+"  ListItem : " +itemValue , Toast.LENGTH_LONG)
      //      .show();
            Intent myIntent = new Intent(view.getContext(), ShowWhereToGo1.class); 
            myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            myIntent.putExtra("id", itemPosition);
            startActivityForResult(myIntent, 0);

          }

     }); 

第二个活动:

         Bundle extras = getIntent().getExtras();

      String temp = extras.getString("id");
      Toast.makeText(getApplicationContext(),
                      "Position :"+temp , Toast.LENGTH_LONG)
                      .show();
     }

我也在第二个活动中尝试了该代码但仍然传递空值:

   Intent in = this.getIntent();
    String name = in.getStringExtra("id");

            Toast.makeText(getApplicationContext(),
            "Position :"+name , Toast.LENGTH_LONG)
            .show();

还有其他方法可以在活动之间传递和检索值吗?

【问题讨论】:

    标签: android listview android-listview data-retrieval pass-data


    【解决方案1】:

    使用

      Bundle extras = getIntent().getExtras();
      if (extras != null) 
      String temp = extras.getInt("id");
    

    而不是extras.getString("id"),因为您从 ListView 点击传递整数

    【讨论】:

    • Intent Docs。您可能还想查看您的Flags。 ρяσѕρєя K 可能会更好地回答这个问题,但我相信如果你在addFlags() 之后调用setFlags(),那么只会使用setFlags() 中的Flags
    • 我怎样才能传递字符串本身(选定的项目),以及数据库中的列表
    猜你喜欢
    • 2015-08-30
    • 2012-11-12
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 2020-07-04
    相关资源
    最近更新 更多