Android的奇怪问题,程序编译但不起作用

时间:2010-11-16 01:23:27

标签: java android string unicode query-string

在我的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项目中调用的相同内容非常合适。

我有什么遗失的吗?

1 个答案:

答案 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的值

我不认为有足够的信息来帮助你的部分表格

杰森