Java 使用soap调用的android listview

Java 使用soap调用的android listview,java,android,listview,soap,android-adapter,Java,Android,Listview,Soap,Android Adapter,您好,我必须使用soap调用在android中开发一个listview应用程序。在这里,我希望运行该应用程序,这意味着此处将显示orderid和状态。在这里,我必须单击列表中的任何订单,这意味着下一个活动将显示状态 但是orderid和状态已成功显示在listview上。但是这里遇到了一些问题…orderid和状态显示为以下格式: 1 --------- F2 ---------- Q3 ---------- P ----------- 但我希望显示以下格式: 1 F --------- 2

您好,我必须使用soap调用在android中开发一个listview应用程序。在这里,我希望运行该应用程序,这意味着此处将显示orderid和状态。在这里,我必须单击列表中的任何订单,这意味着下一个活动将显示状态

但是orderid和状态已成功显示在listview上。但是这里遇到了一些问题…orderid和状态显示为以下格式:

1
---------
F2
----------
Q3
----------
P
-----------
但我希望显示以下格式:

1 F
---------
2 Q
---------
3 P
---------
这是我的android代码

public class RetailerActivity extends Activity {
ListView list;
private static final String SOAP_ACTION = "http://xcart.com/customerData1";
private static final String METHOD_NAME = "customerData1";
private static final String NAMESPACE = "http://xcart.com";
private static final String URL = "http://192.168.1.168:8089/XcartLogin/services/RetailerWs?wsdl";
private static final String KEY_STATUS = "status";



/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

    envelope.setOutputSoapObject(request);

    HttpTransportSE ht = new HttpTransportSE(URL);
    try {
        ht.call(SOAP_ACTION, envelope);
        SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
        SoapPrimitive s = response;
        String str = s.toString();
        String resultArr[] = str.split("&");
        list=(ListView)findViewById(R.id.list);


        list.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1,resultArr));
        list.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                String s2= getIntent().getStringExtra("status");


                // Starting new intent
                Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);

                 in.putExtra(KEY_STATUS, s2);


                 startActivity(in);                 

            }
        });     
    }


    catch (Exception e) {
        e.printStackTrace();
    }
}

}
public class RetailerWs {
public String customerData1(){
String customerInfo = "";
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/xcart-432pro","root","");
  //Find customer information where the customer ID is maximum
PreparedStatement statement =  con.prepareStatement("SELECT * FROM xcart_orders");
ResultSet result = statement.executeQuery();

 while(result.next()){
customerInfo = customerInfo + result.getString("orderid") + "&" + result.getString("status");
  //Here "&"s are added to the return string. This is help to split the string in Android application
 }
 }

 catch(Exception exc){
 System.out.println(exc.getMessage());
 }

return customerInfo;
 }

 }
这是我的main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

 <ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:divider="#b5b5b5"
    android:dividerHeight="1dp"
    android:listSelector="@drawable/list_selector" />

 </LinearLayout>

您可以像这样使用XML——试试这个对您有用吗

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" android:layout_height="fill_parent"  android:orientation="vertical">

    <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:background="#FFFFFF" android:height="1sp">
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:height="1sp" />
    </LinearLayout>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:paddingLeft="2px"
    android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff"
    android:paddingRight="2px">
        <ListView android:id="@+id/android:list" android:fadingEdge="none" android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:layout_weight="1.0" />
    </LinearLayout>
</LinearLayout>

列表视图填充您的数据——它的大小与您的布局所需的大小相同

<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/lv"
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
android:textColor="#000000">
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal"
        android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff">
        <TextView android:id="@+id/orderid"   android:textColor="#7E3517" android:typeface="sans"
        android:textSize="14sp" android:layout_height="fill_parent" android:layout_width="wrap_content"
        android:layout_weight="1.0" android:width="1dip" android:gravity="left"/>
        <TextView android:id="@+id/Status"   android:textColor="#7E3517" android:typeface="sans"
        android:textSize="14sp" android:layout_height="fill_parent" android:layout_width="wrap_content"
        android:layout_weight="1.0" android:width="1dip" android:gravity="left"/>
        <TextView android:id="@+id/Status"   android:textColor="#7E3517" android:typeface="sans"
        android:textSize="14sp" android:layout_height="fill_parent" android:layout_width="wrap_content"
        android:layout_weight="1.0" android:width="1dip" android:gravity="right"/>      <TextView android:id="@+id/Status"   android:textColor="#7E3517" android:typeface="sans"
        android:textSize="14sp" android:layout_height="fill_parent" android:layout_width="wrap_content"
        android:layout_weight="1.0" android:width="1dip" android:gravity="right"/>      <TextView android:id="@+id/Status"   android:textColor="#7E3517" android:typeface="sans"
        android:textSize="14sp" android:layout_height="fill_parent" android:layout_width="wrap_content"
        android:layout_weight="1.0" android:width="1dip" android:gravity="right"/>      <TextView android:id="@+id/Status"   android:textColor="#7E3517" android:typeface="sans"
        android:textSize="14sp" android:layout_height="fill_parent" android:layout_width="wrap_content"
        android:layout_weight="1.0" android:width="1dip" android:gravity="right"/>      <TextView android:id="@+id/Status"   android:textColor="#7E3517" android:typeface="sans"
        android:textSize="14sp" android:layout_height="fill_parent" android:layout_width="wrap_content"
        android:layout_weight="1.0" android:width="1dip" android:gravity="right"/>
        </LinearLayout>
</LinearLayout>

更改您的Web服务代码行:

customerInfo = customerInfo + result.getString("orderid") + "&" + result.getString("status");
致:

因此,对于您的示例输入

1 F
2 Q
3 P
现在生成字符串“1F&2Q&3P”,而不是“1&F2&Q3&p”


之后,我建议您考虑一些更好的方法在组件之间传递数据。

您也可以使用摘要适配器来归档列表视图
1 F
2 Q
3 P