Android:如何在长按列表中显示来自另一个ArrayList的数据

Android:如何在长按列表中显示来自另一个ArrayList的数据,android,Android,第一次海报,短期android编码器(为了好玩),当我遇到问题时,从StackOverflow中学到了很多。不过,这次我找不到解决问题的办法,希望有人能帮助我 我想做的是(请记住,我可能不知道正确的行话……): 通过PHP从MySQL搜索中获取ListView的数据 检索到的数据(每项“日期”和“日期id”)放在两个数组(日期和ids2)中 ListView中填充了数组日期中的响应 然后,当我长按列表中的某个项目时,我希望它在包含“日期id”的_ids2数组中显示关联的日期(我尝试这样做是为了

第一次海报,短期android编码器(为了好玩),当我遇到问题时,从StackOverflow中学到了很多。不过,这次我找不到解决问题的办法,希望有人能帮助我

我想做的是(请记住,我可能不知道正确的行话……):

  • 通过PHP从MySQL搜索中获取ListView的数据
  • 检索到的数据(每项“日期”和“日期id”)放在两个数组(日期和ids2)中
  • ListView中填充了数组日期中的响应
  • 然后,当我长按列表中的某个项目时,我希望它在包含“日期id”的_ids2数组中显示关联的日期(我尝试这样做是为了检查是否可以为我计划的弹出菜单获取此数据)
  • 这就是问题所在->应用程序崩溃:(
Thx提前为您的笔记

这是加载listview的代码(我将数据放在不同的ArrayList中):


ArrayIndexOutOfBoundsException
意味着这些数组的长度不同(或者您可以尝试访问索引
-1
)。最好首先修复USB调试桥接器……或者使用Android emulator进行调试,它可以在没有USB电缆的情况下工作

.getSelectedItemPosition()
的实际问题是,没有选择任何内容:

public static final int INVALID_POSITION

Represents an invalid position. All valid positions are in the
range 0 to 1 less than the number of items in the current adapter.

Constant Value: -1 (0xffffffff)

甚至还有一个索引和一个ID被传递到侦听器中,因此它应该是:

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        date_id = _ids2.get(position);
        ...
        // or even:
        date_id = id;
    }
});
listView.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
公共布尔值长单击(AdapterView父项、视图、整型位置、长id){
date_id=_ids2.get(位置);
...
//甚至:
日期_id=id;
}
});

ArrayIndexOutOfBoundsException
意味着这些数组的长度不同(或者您可以尝试访问索引
-1
)。最好首先修复USB调试桥接器…或者使用Android emulator进行调试,它可以在没有USB电缆的情况下工作

.getSelectedItemPosition()
的实际问题是,没有选择任何内容:

public static final int INVALID_POSITION

Represents an invalid position. All valid positions are in the
range 0 to 1 less than the number of items in the current adapter.

Constant Value: -1 (0xffffffff)

甚至还有一个索引和一个ID被传递到侦听器中,因此它应该是:

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        date_id = _ids2.get(position);
        ...
        // or even:
        date_id = id;
    }
});
listView.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
公共布尔值长单击(AdapterView父项、视图、整型位置、长id){
date_id=_ids2.get(位置);
...
//甚至:
日期_id=id;
}
});

您好,请您发布崩溃日志。谢谢。是的,请发布它,因为它可能是一个用于快速响应的BoundsThx阵列,我在哪里可以找到崩溃日志?:|在您的左下角有一个名为Run的东西。如果您使用USB电缆连接到您的计算机,那么您将看到您的程序正在执行的所有操作。当出现红色mes时sages这就是错误..也可能出现在日志上从未连接到USB,cpu不兼容我想..还有其他方法吗?从设备本身。您好,请发布崩溃日志。谢谢。是的,请发布它,因为它可能是一个用于快速响应的BoundsThx阵列,我在哪里可以找到崩溃日志?:|在您的左下角这里有一个叫做Run的东西。如果你用USB电缆连接到你的计算机,你会看到你的程序正在做的一切。当出现红色消息时,这就是错误。也可能出现在Logcat上。我认为USB连接无法正常工作,cpu不兼容。还有其他方法吗?从设备本身。非常感谢,你解决了它!阅读更多,复制/粘贴太多不是正确的方法。@LoLig01学习如何建议;这通常比任何文档都更能说明问题。非常感谢,你解决了它!阅读更多,复制/粘贴太多不是正确的方法。@LoLig01学习如何建议;这通常比任何文档都更能说明问题。
public static final int INVALID_POSITION

Represents an invalid position. All valid positions are in the
range 0 to 1 less than the number of items in the current adapter.

Constant Value: -1 (0xffffffff)
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        date_id = _ids2.get(position);
        ...
        // or even:
        date_id = id;
    }
});