0

こんにちは私はandroidで1つのスピナーの例を開発する必要があります。ここで私は以下のコードを使用する必要があります:

public class InsertionExample extends Activity {
private final String NAMESPACE = "http://xcart.com";
private final String URL = "http://192.168.1.168:8089/XcartLogin/services/update?wsdl";

private final String SOAP_ACTION = "http://xcart.com/insertData";
private final String METHOD_NAME = "insertData";
Button btninsert;
String selectedItem;
private int i;
static final String KEY_NAME = "orderid";
static final String KEY_STATUS = "status";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.change_status);
    Intent in = getIntent();
    String status = in.getStringExtra(KEY_STATUS);
    String[] DayOfWeek = {status, "Q", "P", "F", "I", "C"};
    for(i=1;i<DayOfWeek.length();i++){
        if(DayOfWeek.get(i).equals(status)) {
            DayOfWeek.remove(DayOfWeek.get(i));
        }
    }

    Spinner spinner = (Spinner) findViewById(R.id.spinner1);
    btninsert = (Button)findViewById(R.id.btn_insert1);
    btninsert.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
             Intent in = getIntent();
             String orderid = in.getStringExtra(KEY_NAME);
             String status = in.getStringExtra(KEY_STATUS);
             SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
             PropertyInfo unameProp =new PropertyInfo();
             unameProp.setName("Status");//Define the variable name in the web service method
             unameProp.setValue(selectedItem);//Define value for fname variable
             unameProp.setType(String.class);//Define the type of the variable

             request.addProperty(unameProp);
             PropertyInfo idProp =new PropertyInfo();
             idProp.setName("Orderid");//Define the variable name in the web service method
             idProp.setValue(orderid);//Define value for fname variable
             idProp.setType(String.class);//Define the type of the variable
             request.addProperty(idProp);

             SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
             envelope.setOutputSoapObject(request);
             HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

             try{
                 androidHttpTransport.call(SOAP_ACTION, envelope);
                 SoapPrimitive response = (SoapPrimitive)envelope.getResponse();

                 TextView result = (TextView) findViewById(R.id.textView2);
                 result.setText(response.toString());
             }
             catch(Exception e){

             }
         }
    });


    //create an ArrayAdaptar from the String Array
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
           R.layout.row, R.id.country, DayOfWeek);
     //set the view for the Drop down list

     spinner.setAdapter(adapter);
     spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

}


public class MyOnItemSelectedListener implements OnItemSelectedListener {

    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
         selectedItem = parent.getItemAtPosition(pos).toString(); 
    }


    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

    }

}

    public void onNothingSelected(AdapterView<?> parent) {
        // Do nothing.
    }
}

これは私のforループです:

  for(i=1;i<DayOfWeek.length();i++){
        if(DayOfWeek.get(i).equals(status)) {
            DayOfWeek.remove(DayOfWeek.get(i));
        }
  }

ここで、forループで以下のエラーが発生しました: 配列型でlength()を
呼び出すことができません配列型String []でget(int)を呼び出すことができません

上記のエラーを削除するにはどうすればよいですか。助けてください。弦[]

4

4 に答える 4

1

使用する:

DayOfWeek.length // no function!

DayOfWeek[i] // operator []

次のドキュメントを読んでください: Java チュートリアル

ところで、Java では配列からアイテムを削除することはできません。@Gabrielが言ったように、ここでのニーズにはArrayListの方が適しているかもしれません。

于 2012-10-16T09:46:36.487 に答える
1

String[] DayOfWeek はテーブルです。長さを取得したい場合は、 DayOfWeek.length を使用してください。それなし ()。そして、DayOfWeek.get(i) ではなく DayOfWeek[i] で位置 i のアイテムを取得しません。ジャバです。C# ではありません。

于 2012-10-16T09:47:30.623 に答える
1

DayOfWeek.lengthはありませんDayOfWeek.length()。メソッド呼び出しではなく、配列の (最終) 変数です。

あなたの場合、ArrayList<String>配列から削除したい(できない)ことを見て、より良いサービスを提供します。

于 2012-10-16T09:49:39.220 に答える
0

配列から要素を削除することはできません。arraylist 内のデータを変更するオプションがある arraylist を使用することをお勧めします。

于 2012-10-16T09:53:49.917 に答える