Search code examples
javaandroidandroid-listviewlistadapterandroid-ksoap2

listview via soap call in android


Hi i have successfully developed one listview app..now i have to click any item from that list means the detail description is displayed on next activity...it is also successfully finished..now my output is below format:

1   F   Krishna
2   Q   Danesh
3   P   Mercy

here i have to click the 2 Q Danesh item it is go to next activity.the next activity have to displayed

Q Danesh

it is succssfully worked.

but now i wish to need the listview like this format:

1 Krishna
2 Danesh
3 Mercy

Here i have to click the 2 Danesh means it is go to next activity and the next activity have to display

Q

how can i do....please help me...

the below code is my webservice code:

 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") 
            + " "   // this to separate order id from status
            + result.getString("status") 
            + " " 
    // this to separate order id from status
            + result.getString("login") 
            + "&" ;
 //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;
}

 }

this is my android code:

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";
private static final String KEY_LOGIN = "login";


/** 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 status =  parent.getItemAtPosition(position).toString();

                String[] status1  = status.split(" ");

                 String StrStatus = status1[1].toString();

                Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
                in.putExtra(KEY_STATUS, StrStatus);

                startActivity(in);            



            }
        });     
    }


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

  }

this is my next activity:

 public class SingleMenuItemActivity  extends Activity {

// XML node keys
static final String KEY_STATUS = "status";

@Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.single_list_item);

    Intent in = getIntent();
    String StrStatus = in.getStringExtra(KEY_STATUS);


    // Displaying all values on the screen
    TextView lblName = (TextView) findViewById(R.id.status_label);
    lblName.setText(StrStatus);

  }
  }

please help me....


Solution

  • It is possible. You can take your Q from List Screen to other Activity.

    You just have to change in your first Activty (which is your Q Value)

    in.putExtra("StrStatus", StrStatus);
    

    and then you can get this in your other activity through

    Bundle extras=getIntent().getExtras();
    if(extras!=null) {
        STRStatus=extras.getString("StrStatus");
    }
    

    This will have your Q value and you can do whatever you want.

    -----
    BTW - Which error ure you getting? You can use this to Click your List Item

    public void onListItemClick(ListView parent,View v,int position,long id){
    try {
        TextView t4=(TextView)v.findViewById(R.id.No);
    
        if (t4!=null){
            BeanClass/*ClassName*/  mSelected;
            int idx=position;
            mSelected=m_adapter.getItem(idx);           
            String ActionID=mSelected.getID();
    
            Intent intent=new Intent(this,SoneActivity.class);
            intent.putExtra("StrStatus", StrStatus);
            startActivity(intent);
        }
    }