该应用程序(使用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将不返回任何数据。
有没有人遇到这样的问题?我觉得我好像在忽略一些东西。
答案 0 :(得分:0)
在PHP输出的末尾可能有空白字符,例如Spaces或Newlines,它们会阻止在下一个Activity中正确获取最后一项。在PHP中,通过以下代码非常容易地生成换行符:
<?php
echo 'test1,test2,test3';
?>
[whitespace here]
如果最后的?>
不是PHP文件的真正结尾,但是空格就像文件末尾的简单换行符一样,它们被输出并由HttpPost方法获取。该文件必须以<?
开头,并在同一行的?>
之后立即结束,以防止此情况发生。