0

嗨,我必须在 android.here 中开发一个微调器示例,我必须使用以下代码:

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.lenght 。没有 ()。而且您不会通过 DayOfWeek.get(i) 获得位置 i 上的项目,而是 DayOfWeek[i]。是Java。不是 C#。

于 2012-10-16T09:47:30.623 回答
1

DayOfWeek.length,不是DayOfWeek.length()。它是数组的(最终)变量,而不是方法调用。

在您的情况下, anArrayList<String>将为您提供更好的服务,因为您想从阵列中删除(您不能)。

于 2012-10-16T09:49:39.220 回答
0

您不能从数组中删除元素。你最好使用一个arraylist,它有一个选项来改变你在arraylist中的数据。

于 2012-10-16T09:53:49.917 回答