Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android putExtra不';Don’不要派多余的人_Android - Fatal编程技术网

Android putExtra不';Don’不要派多余的人

Android putExtra不';Don’不要派多余的人,android,Android,我正试图为下一个活动发送一些额外的信息,但它根本不起作用,我不明白为什么。我正在用覆盖图填充地图,当单击时,我尝试将覆盖项的ID发送到一个新活动,我会得到CursorIndexOutOfBounds public static String ROW_ID = "row_id"; // Intent extra key protected boolean onTap(int index) { // TODO Auto-generated method stub // ret

我正试图为下一个活动发送一些额外的信息,但它根本不起作用,我不明白为什么。我正在用覆盖图填充地图,当单击时,我尝试将覆盖项的ID发送到一个新活动,我会得到CursorIndexOutOfBounds

  public static String ROW_ID = "row_id"; // Intent extra key

 protected boolean onTap(int index) {
    // TODO Auto-generated method stub
    // return super.onTap(index);


    ROW_ID = overlayItemList.get(index).getTitle();

    Intent intent = new Intent(context, ViewContactFromMap.class);
    intent.putExtra("ROW_ID", overlayItemList.get(index).getTitle());

    Log.e("putExtra", "ROW_ID is " + ROW_ID);

    context.startActivity(intent);
    return true;
}
在这里,Log.e输出所单击项目的id。例29

但是在我的下一个活动中,我尝试打开Log.e,但是它显示值0,这就是为什么我得到CursorIndexOutOfBounds。但是为什么它没有提高价值呢

        // get the selected contact's row ID
    Bundle extras = getIntent().getExtras();
    rowID = extras.getLong(MyOverlays.ROW_ID);

    Log.e("ViewContactFromMap", "rowID is: " + rowID);
即使我硬编码并将ROW_ID设置为29,我在下一个活动中仍然会得到0的值


在得到下面这些人的帮助后,我用它来处理这个问题:

    ROW_ID = overlayItemList.get(index).getTitle();

    Intent intent = new Intent(context, ViewContactFromMap.class);
    intent.putExtra("ROW_ID", overlayItemList.get(index).getTitle());

    Log.e("putExtra", "ROW_ID is " + ROW_ID);

    context.startActivity(intent);


删除行ID
intent.putExtra(行ID,overlayItemList.get(index.getTitle())周围的引号

更改ROW\u ID
公共静态字符串ROW\u ID=“ROW\u ID”的大小写

编辑:
还要确保您的类型相同
getTitle
实际上可能是一个
字符串
。在这种情况下,
getString(MyOverlays.ROW_ID)
可能就是您要查找的内容。

删除ROW_ID
intent.putExtra(ROW_ID,overlayItemList.get(index.getTitle())周围的引号

更改ROW\u ID
公共静态字符串ROW\u ID=“ROW\u ID”的大小写

编辑: 还要确保您的类型相同
getTitle
实际上可能是一个
字符串
。在这种情况下,
getString(MyOverlays.ROW\u ID)
可能就是您要查找的内容。

.putExtra()
中,您要放置字符串“ROW\u ID”。因此,您需要在
getExtras()
中的下一个活动中从字符串“ROW\u ID”中获取数据

请注意,变量
ROW\u ID
的值是“ROW\u ID”,但您将该值放入“ROW\u ID”。尝试使用全大写或全小写-这些都是区分大小写的

说明:您正在使用
.putExtra()
将变量存储到标记“ROW\u ID”中。然后,在另一个活动中,您尝试使用变量
ROW\u ID
获取值,该变量的值为“ROW\u ID”。你现在看到问题了吗?值存储为“ROW_ID”,试图将其作为“ROW_ID”接收。。。这些标签不一样。因此,
.getLong()
无法找到该值,因此将其设为0

简短回答:将变量更改为
公共静态字符串ROW\u ID=“ROW\u ID”
并确保您真正尝试获取的变量是一个长变量。如果存储的是整数,请改用
.getInt()
,或使用
.getString()
作为字符串。

.putExtra()
中,将字符串“ROW\u ID”放入。因此,您需要在
getExtras()
中的下一个活动中从字符串“ROW\u ID”中获取数据

 public static String ROW_ID = "row_id"; // Intent extra key
private Context c;  

 protected boolean onTap(int index) {
Intent intent = new Intent(c, ViewContactFromMap.class);
                    intent.putExtra(ROW_ID, overlayItemList.get(index).getTitle());
                    c.startActivity(intent); 
}


// get the selected contact's row ID
    Bundle extras = getIntent().getExtras();
    rowID = extras.getLong(MyOverlays.ROW_ID);

    Log.e("ViewContactFromMap", "rowID is: " + rowID);
请注意,变量
ROW\u ID
的值是“ROW\u ID”,但您将该值放入“ROW\u ID”。尝试使用全大写或全小写-这些都是区分大小写的

说明:您正在使用
.putExtra()
将变量存储到标记“ROW\u ID”中。然后,在另一个活动中,您尝试使用变量
ROW\u ID
获取值,该变量的值为“ROW\u ID”。你现在看到问题了吗?值存储为“ROW_ID”,试图将其作为“ROW_ID”接收。。。这些标签不一样。因此,
.getLong()
无法找到该值,因此将其设为0

简短回答:将变量更改为
公共静态字符串ROW\u ID=“ROW\u ID”
并确保您真正尝试获取的变量是一个长变量。如果存储的是整数,请改用
.getInt()
.getString()
作为字符串。

overlayItemList.get(index.getTitle());可能正在返回字符串,并且您正在使用

 public static String ROW_ID = "row_id"; // Intent extra key
private Context c;  

 protected boolean onTap(int index) {
Intent intent = new Intent(c, ViewContactFromMap.class);
                    intent.putExtra(ROW_ID, overlayItemList.get(index).getTitle());
                    c.startActivity(intent); 
}


// get the selected contact's row ID
    Bundle extras = getIntent().getExtras();
    rowID = extras.getLong(MyOverlays.ROW_ID);

    Log.e("ViewContactFromMap", "rowID is: " + rowID);
rowID = extras.getLong(MyOverlays.ROW_ID); 
我不确定,但请尝试以下方法

rowID = extras.getStringExtra(MyOverlays.ROW_ID); 
overlayItemList.get(index.getTitle());可能正在返回字符串,并且您正在使用

rowID = extras.getLong(MyOverlays.ROW_ID); 
我不确定,但请尝试以下方法

rowID = extras.getStringExtra(MyOverlays.ROW_ID); 

Intent in=新的Intent(这个,XXX.class)
in.putExtra(“testExtra”、“TestData”)
startActivity(in)

同样的问题也发生在我身上。我通过添加以下内容解决了这个问题:


Intent in=新的Intent(这个,XXX.class)
in.addFlags(Intent.FLAG\u ACTIVITY\u NEW\u TASK)
in.addFlags(Intent.FLAG\u ACTIVITY\u SINGLE\u TOP)
in.putExtra(“testExtra”、“TestData”)

startActivity(in)

Intent in=newintent(这个,XXX.class)
in.putExtra(“testExtra”、“TestData”)
startActivity(in)

同样的问题也发生在我身上。我通过添加以下内容解决了这个问题:


Intent in=新的Intent(这个,XXX.class)
in.addFlags(Intent.FLAG\u ACTIVITY\u NEW\u TASK)
in.addFlags(Intent.FLAG\u ACTIVITY\u SINGLE\u TOP)
in.putExtra(“testExtra”、“TestData”)

startActivity(in)

MyOverlays.ROW\u ID的值是多少?嗯。这实际上给出了正确的值。我试着解决这个问题:)好吧,你可能不应该使用静态在活动之间传输数据,我更想的是,既然你用键“ROW\u ID”设置值,你还需要用键“ROW\u ID”设置长时间。请参阅下面的@MikeGates答案。MyOverlays.ROW_ID的值是多少?嗯。这实际上给出了正确的值。我试着解决这个问题:)好吧,你可能不应该使用静态在活动之间传输数据,我更想的是,既然你用键“ROW\u ID”设置值,你还需要用键“ROW\u ID”设置长时间。请参阅下面的@MikeGates答案。这只会将键“29”设置为值“29”,请注意,代码中的行ID已更改。
putExtra
采用键/值对。问题是