0

私はsoap呼び出しを介してandroidlistviewを開発しましたが、成功しました。今、そのリストから任意の項目をクリックする必要があります。これは、詳細な説明が表示されることを意味します...

これは私のサンプルリストビュー形式です:

1 F
2 Q
3 P

ここで、1 F項目をクリックする必要があるということは、Fが次のアクティビティで表示されることを意味します。2Qをクリックする必要があるのと同じことは、Qが次のアクティビティで表示されることを意味します。

次のアクティビティは次のようにする必要があります:(クリック1Fは、次のアクティビティに移動してFを表示することを意味します)

F

どうすればこれを開発できますか。助けてください...

ここで1Fをクリックする必要があるということは、次のアクティビティに移動することを意味します...次のアクティビティには何も表示されません。

これは私のコードです:

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 status = ((TextView) view.findViewById(R.id.status)).getText().toString();

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

            }
        });     
    }


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

}

これは別のアクティビティです。

 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 status = in.getStringExtra(KEY_STATUS);


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

}
}

これはsingle_list_item.xmlファイルです:

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Name Label -->
 <TextView android:id="@+id/status_label"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="25dip"
        android:textStyle="bold"
        android:paddingTop="10dip"
        android:paddingBottom="10dip"
        android:textColor="#dc6800"
       />

 </LinearLayout>

私を助けてください..どうすればこれを開発できますか。

4

1 に答える 1

2

ここで私はonItemClickが値を取得していないと思うので、次のような値を取得します

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);                  

        }
    });  

ActivityAをBに渡し、値を取得するためのより多くの値については、ここを参照してください。これはあなたを助けるかもしれません

于 2012-09-18T12:52:36.023 に答える