关于send control spinner to my method的咨询

Consultation about send control spinner to my method

我的 Android 程序中有 5 个 Spinner

我还有方法需要发送状态和 Spinner

例如:方法

public void Fix_Combo1(String N,[sppiner SP - ???])
{
    switch (N)
    {
        case "AA":
             SP.setSelection(0);
            break;
        case "BB":
            SP.setSelection(1);
            break;
        case "CC":
            SP.setSelection(2);
            break;
        default:
            SP.setSelection(0);
    }
}

例如:发送

Fix_Combo1(R1,Spiner SP ?);

怎么做?

首先:您不能在 switch 语句中使用 String

switch statement on String objects is a new feature introduced in Java 1.7 . Unfortunately most of Android sdks requires version 1.6 or 1.5. This is why you have to forget for some time about such constructions.

其次:如果您想将 Spinner 之一发送到方法,只需发送 Spinner 对象即可:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);

    Spinner sp1=(Spinner)findViewById(R.id.sp1);
    Spinner sp2=(Spinner)findViewById(R.id.sp1);
    Spinner sp3=(Spinner)findViewById(R.id.sp1);
    Spinner sp4=(Spinner)findViewById(R.id.sp1);

    //Send by name
    Fix_Combo1(2,  sp1);

    // OR Send by Number
    ArrayList<Spinner> sp_list=new ArrayList<Spinner>();
    sp_list.add(sp1);
    sp_list.add(sp2);
    sp_list.add(sp3);
    sp_list.add(sp4);

    Fix_Combo1(2,  sp_list.get(2));


}

private void Fix_Combo1(int N, Spinner SP ) {


    switch (N)
    {
        case 1:
            SP.setSelection(0);
            break;
        case 2:
            SP.setSelection(1);
            break;
        case 3:
            SP.setSelection(2);
            break;
        default:
            SP.setSelection(0);
    }
}