Android studio - 如何让微调器中的第一项为空?

时间:2015-07-29 09:43:15

标签: java android-studio

正如主题所说,我怎样才能让第一个项目变为空?

就像现在一样,我在旋转器的第一个位置始终从一开始就选择了一个值。这意味着应用程序直接转到第二个活动,并且没有机会在列表中选择其他项目。

我已将所有字符串保存在string.xml中的String数组中。 MainActivity中的代码如下所示;

spinner = (Spinner) findViewById(R.id.spinner);
adapter = ArrayAdapter.createFromResource(this, R.array.country_names, android.R.layout.simple_spinner_item);

adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);

spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        ((TextView) parent.getChildAt(0)).setText(null);
        ((TextView) parent.getChildAt(0)).setTextColor(Color.BLACK);
        ((TextView) parent.getChildAt(0)).setTextSize(23);

        Spinner mySpinner = (Spinner)findViewById(R.id.spinner);
        String txtFromSpinner = mySpinner.getSelectedItem().toString();

        if (txtFromSpinner.equals("Denmark")) {
            //Go to Denmark activity
        }
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
    }

});

正如您所看到的,应用程序从MainActivity开始,但由于Denmark是strings.xml中的第一个String,因此该应用程序直接进入“丹麦活动”。

1 个答案:

答案 0 :(得分:0)

在string.xml上添加一个空字符串项,如下所示:

setSelection(position, false);

<强> UPDATE2

或者您可以在setOnItemSelectedListener(listener)

之前的初始选择中执行此 spinner = (Spinner) findViewById(R.id.spinner); adapter = ArrayAdapter.createFromResource(this, R.array.country_names, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); spinner.setAdapter(adapter); setSelection(0, false); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { ((TextView) parent.getChildAt(0)).setText(null); ((TextView) parent.getChildAt(0)).setTextColor(Color.BLACK); ((TextView) parent.getChildAt(0)).setTextSize(23); Spinner mySpinner = (Spinner)findViewById(R.id.spinner); String txtFromSpinner = mySpinner.getSelectedItem().toString(); if (txtFromSpinner.equals("Denmark")) { //Go to Denmark activity } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); }

所以请将代码更新为:

Container out = new DefaultMp4Builder().build(video);

FileOutputStream fos;

try {
    fos = new FileOutputStream(filename);
    out.writeContainer(fos.getChannel());
    fos.close();

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