0

SOAP Web サービスからカウント値を取得し、それらを Android エミュレーターに表示する方法を開発しようとしました。ここで、特定の textview とは、エミュレータに表示されないことを意味すると述べました。これがエミュレータに表示されない理由。私を助けてください。どの行を変更する必要がありますか。これは私のアンドロイドコードです:

public class RetailerActivity extends Activity {
private static final String SOAP_ACTION = "http://xcart.com/data";
private static final String METHOD_NAME = "data";
private static final String NAMESPACE = "http://xcart.com";
private static final String URL = "http://192.168.1.168:8085/XcartLogin/services/RetailerWs?wsdl";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.retrieve);
    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("&");//Result string will split & store in an array
        TextView tv = (TextView) findViewById(R.id.textView1);
       // TextView tv = new TextView(this);

        for(int i = 0; i<resultArr.length;i++){
        tv.append(resultArr[i]+"\n\n");
       }
        setContentView(tv);

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

ここで私は TextView tv = new TextView(this); と書かなければなりません。行は、出力が表示されていることを意味しますが、行を配置する必要があります TextView tv = (TextView) findViewById(R.id.textView1); 出力がエミュレータに表示されないことを意味します。

4

2 に答える 2

1

この行を削除します setContentView(tv);。ここで2 つを使用するのは正しくないようですsetContentView()

最初に既に を呼び出しており setContentView(R.layout.retrieve);、ここで TextView を初期化しているため、

 TextView tv = (TextView) findViewById(R.id.textView1);

そう、

tv.append(resultArr[i]+"\n\n"); 

だけで動作するはずです。再度設定する必要はありませんtv

編集1

xml の TextView は次のようになります。

    <TextView android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

他の属性を削除します。

于 2012-08-02T06:12:22.730 に答える
0

私は何をするかわかりませんappend

あなたは書ける

   String s = ""
    for(int i = 0; i<resultArr.length;i++) {
            s += resultArr[i]+"\n\n";
    }
    tv.setText(s)

より良い使用StringBuilderですが、上記は機能するはずです

于 2012-08-02T06:14:00.840 に答える