微调器 Android

Spinner Android

下面的代码运行完美,如何将 EditText 替换为 Spinner?

我已经尝试过基本的 Spinner,它可以工作,但对于多个 Spinner(我需要我的项目)却变成了错误,我不知道如何制作它。

   public class TTS_1 extends AppCompatActivity {
    EditText box1, box2, box3;
    TextView txtView;
    Button btnOk;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tts_1);

        txtView = (TextView) findViewById(R.id.txt1);
        box1 = (EditText) findViewById(R.id.edt1);
        box2 = (EditText) findViewById(R.id.edt2);
        box3 = (EditText) findViewById(R.id.edt3);
        btnOk = (Button) findViewById(R.id.btnOK);

        final String [] arrayQuestion = {"1", "2", "3"};
        final String [] arrayAnswer = new String[3];

        btnOk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                arrayAnswer[0] = box1.getText().toString();
                arrayAnswer[1] = box2.getText().toString();
                arrayAnswer[2] = box3.getText().toString();
                if (Arrays.equals(arrayAnswer,arrayQuestion)) {
                    txtView.setText("Arrays is equals");
                }
                else {
                    txtView.setText("Arrays is not equals");
                }
            }
        });
    }
}

对不起,这不是错误,只是显示else语句(输入正确)。

我的基本微调器是:

final String[] theQuestion2 = {"1", "2", "3"};
    final String [] theNumbers = {" ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};

spinner1 = (Spinner) findViewById(R.id.spinner1);
    ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, theNumbers);
    spinner1.setAdapter(adapter);

    spinner1 = (Spinner) findViewById(R.id.spinner2);
    ArrayAdapter adapter2 = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, theNumbers);
    spinner1.setAdapter(adapter2);

    spinner1 = (Spinner) findViewById(R.id.spinner3);
    ArrayAdapter adapter3 = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, theNumbers);
    spinner1.setAdapter(adapter3);

试试这个 在您的 xml 文件

中声明一个带有某个名称的微调器
  <Spinner
   android:layout_marginLeft="10dp"
   android:layout_marginRight="10dp"
   android:layout_weight="8"
   android:id="@+id/some"
   android:layout_width="match_parent"
   android:layout_height="40dp"
   />

现在在你的 java 中声明一个数组适配器

 ArrayAdapter<CharSequence> adapter1;

将以下行放在 onCreate 方法中

 spinner1 = (Spinner) findViewById(R.id.some);
 adapter1 = ArrayAdapter.createFromResource(this, R.array.some, android.R.layout.simple_spinner_item);
 adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 spinner1.setAdapter(adapter1);

其中R.array.some指res>strings中的数组值,

 <string-array name="some">
        <item>Select</item>
        <item>Select1</item>
        <item>Select2</item>
 </string-array>

您也可以使用 arraylist 而不是 arrayadapter 添加它。 此方法可帮助您创建任意数量的微调器

ArrayAdapter<CharSequence> adapter;
Spinner Id_mSpinner;

将以下行放在 onCreate 方法中

Id_mSpinner = (Spinner) findViewById(R.id.some);
adapter = ArrayAdapter.createFromResource(this, R.array.some, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Id_mSpinner.setAdapter(adapter);