繁体   English   中英

在多个活动中进行HTTP调用的Android应用程序无法正确返回数据

[英]Android Application that makes HTTP calls in multiple Activities does not return data correctly

该应用程序对PHP文件进行调用(利用HttpPost),该PHP文件将查询发送到MySQL数据库。 PHP文件将数据解析为Java友好的字符串语句,该语句可以轻松转换为String[]数组( String[] str = data_from_php.split(","); ); 因此数据ID的格式如下:“项目1,项目2,项目3”。

多个活动背对背运行该类型的代码:

(1)活动1将使用String[]数组构建一个ListActivity,它可以正常工作。 当用户单击列表项时,它将从该对象中提取文本,并将其转发到下一个活动(使用putExtra)。

(2)活动2使用HttpPost方法中来自A1的额外数据来获取另一个String[]数组,以构建另一个ListActivity。 同样,用户选择一个项目,多余的数据将发送到第3行为。

(3)链中的第三个活动以与上述相同的方式发送数据,但是该活动在TextView中显示了一大块数据。

问题是,从具有列表数组的两个活动中,如果我在任何列表(Act 1或2)上选择LAST项,则下一个结果Activity将不返回任何数据。

有没有人遇到过这样的问题? 我感觉好像在俯视某些东西。

可能在PHP输出的末尾有空白字符,例如Spaces或Newlines,它们会阻止在下一个Activity中正确获取最后一项。 在PHP中,通过以下代码可以很容易地创建换行符:

<?php
    echo 'test1,test2,test3';
?>
[whitespace here]

如果最后一个?>不是PHP文件的真实末尾,但是文件末尾的空格像一条简单的换行符,它们就会被输出并由HttpPost方法获取。 该文件必须以<?开头 并在同一行的?>之后立即结束以防止这种情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM