在我的android项目中,我有一个简单的Java文件,它可以获取网页内容,对文本执行某些操作并将文本作为String
返回。我在Android上的另一个活动中的ScrollView
中显示此文字。
它工作正常,但是当我尝试操作此Java文件中的文本时出现问题。我尝试使用数组,它没有工作然后切换回String
,仍然没有。它只是一种特殊的方法,它无法提供任何输出,但程序编译得很好。
但是,在Eclipse中的Java项目中尝试相同的方法非常合适。
这是我的代码:
// This method will return selected stripped text extracted from rawData
public static String FillMenus(String rawData){
String resulT = "";
int c1, c2;
for(int i=0; i<11; i++){
c1 = rawData.indexOf("\" width=\"50px\" />") + 17;
c2 = rawData.indexOf(" €</td>") + 2;
if (c1==16 || c2==1) break;
if (c1<=c2){
resulT = resulT+"\n"+ rawData.substring(c1, c2);
rawData = rawData.substring(c2);
}
if (c1>c2){
resulT = resulT+"\n"+StripTag((rawData.substring(0, c2)));
rawData = rawData.substring(c2);
}
}
return resulT;
}
如果此方法没有问题,为什么它不提供任何输出?如果我在Android中返回rawData
,手机会正确显示所有内容。如果我返回输出结果String
,则手机中的所有内容都为空白。
如果我在同一个Android项目中的另一个测试类(test.java)中调用此方法(比如在类ABC
中创建),请说String a = ABC.FillMenus(String b)
有一些奇怪的东西。我得到一个编译器错误,而它在Android手机中显示为空白。从Java项目中调用的相同内容非常合适。
我有什么遗失的吗?
答案 0 :(得分:1)
一些事情
1)你为循环做什么?
2)如果(c1&lt; = c2)和if(c1&gt; c2)是独占的,那么我建议将if(c1&gt; c2)更改为else(将来当你想要更改代码时有帮助)
3)你应该将结果初始化为null而不是“”,它将帮助你在FillMenu的出口测试,以便知道你的代码何时被跳过或没有值。
现在我的猜测是因为某些原因如果(c1 == 16 || c2 == 1)中断;被触发,因此resultT永远不会改变,因此存在空。
你应该在调试中运行这个代码并在其中加一个断点,特别是监视c1 c2的值
我不认为有足够的信息来帮助你的部分表格
杰森