2

我在 j2me 中有一个从 wml/asp 页面获取字符串和数据的程序。
使用此代码:

HttpConnection con = (HttpConnection) Connector.open(
    "http://localhost:"+port+"/MobileWebWIthConnection/ShowCourseinsemester.aspx?StudentId="+ID+"&Year="+Year+"&Semester="+Semester);
DataInputStream in = new DataInputStrea(con.openInputStream());
int len = (int) con.getLength();
byte[] info = new byte[len];
in.readFully(info);
result = new String(info);

switchDisplayable(null, getStudentCourses());
stringItem2.setText(result);

当我的 j2me 应用程序尝试从此页面读取和存储数据时:

"http://localhost:"+port+"/MobileWebWIthConnection/ShowCourseinsemester.aspx?StudentId="+ID+"&Year="+Year+"&Semester="+Semester

放置在名为 (result) 的字符串中的文本与下面的预期图完全不同:

页面调用

它采用不带格式的内容,如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



 <wml>
 <card>
 <p><b>Student Name :</b> Arin                 Rizk                </p>
 <p><b>Student ID</b> : 20111</p>
 <p>first Semester ,2011</p>
 1 - Course Name : DDD        | Credits Number : 3          | Mark : 70         </br>  2 - Course Name : EEE        | Credits Number : 3          | Mark : 65         </br>  3 - Course Name : EEE        | Credits Number : 3          | Mark : 65         </br>  4 - Course Name : EEE        | Credits Number : 3          | Mark : 90         </br>  
 </card>
 </wml>

因此,当我将此文本分配给 StringItem 时,它在图中显示如下。

stringItem2.setText(result);

在此处输入图像描述

如何让我的 j2me 将字符串视为原始格式化页面?

4

1 回答 1

1

我解决了,特别是在j2me中没有(拆分方法)有点棘手。

所以我创建了一个。

我清除了它

String[] split (String x){
        int num=0;
        for(int i=0; i<x.length(); i++)  // count the number of ','
            if(x.charAt(i)==',')
                num++;

        String[] r=new String[num];
        for(int i=0; i<num; i++)
        {
            int loc=x.indexOf(",");  //loc is the location of each ','
            r[i]=x.substring(0,loc);
            x=x.substring(loc+1);
        }
            return r;
        }

然后我应用它并在列表中显示结果

HttpConnection con = (HttpConnection) Connector.open("http://localhost:"+port+"/MobileWebWIthConnection/ShowCourseinsemester.aspx?StudentId="+ID+"&Year="+Year+"&Semester="+Semester);
                            DataInputStream in = new DataInputStream(con.openInputStream());
                            int len = (int) con.getLength();
                            byte[] info = new byte[len];
                            in.read(info);
                            result = new String(info);                          
                            String[] a=split(result);
                    getList().deleteAll();
                    for(int i=1; i<a.length; i++)
                        getList().append(a[i], null);

                    switchDisplayable(null,getList());

在没有来自 wml 页面的完整源代码的情况下,结果与想要的一样(在行中)。

在此处输入图像描述

于 2012-04-28T18:18:13.870 回答