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

时间:2011-04-24 19:22:21

标签: java android

该应用程序(使用HttpPost)调用PHP文件,将查询发送到MySQL数据库。 PHP文件将数据解析为一个Java友好的字符串语句,可以很容易地转换为String[]数组(String[] str = data_from_php.split(","););所以数据id格式如下:“第1项,第2项,第3项”。

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

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

(2)Activity 2使用HttpPost方法中A1的额外数据来获取另一个String[]数组来构建另一个ListActivity。同样,用户选择一个项目,并将额外的数据发送到第3步。

(3)链中的第3个Activity以与上面相同的方式发送数据,但是此Activity在TextView中显示一大块数据。

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

有没有人遇到这样的问题?我觉得我好像在忽略一些东西。

1 个答案:

答案 0 :(得分:0)

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

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

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