在Android中以编程方式创建微调器

问题描述 投票:20回答:2

我想创建一个微调器而不使用XML。我是android的新手,我的知识很有限。到目前为止,我已经有了此代码(请参见上文),并且希望将微调器放在TabActivity的选项卡之一中。没有明显的错误,但是当我打开活动时,该选项卡为空。我将不胜感激。

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    ArrayList<String> spinnerArray = new ArrayList<String>();
    spinnerArray.add("one");
    spinnerArray.add("two");
    spinnerArray.add("three");
    spinnerArray.add("four");
    spinnerArray.add("five");

    Spinner spinner = new Spinner(this);
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray);
    spinner.setAdapter(spinnerArrayAdapter);

}
android spinner android-spinner
2个回答
35
投票

您需要将Spinner添加到布局。

首先为container创建一个Spinner,然后创建Spinner并将其添加到您的container。接下来将Activity的内容设置为container

这可以通过您的onCreate方法来完成:

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

    LinearLayout layout = new LinearLayout(this);

    ArrayList<String> spinnerArray = new ArrayList<String>();
    spinnerArray.add("one");
    spinnerArray.add("two");
    spinnerArray.add("three");
    spinnerArray.add("four");
    spinnerArray.add("five");

    Spinner spinner = new Spinner(this);
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray);
    spinner.setAdapter(spinnerArrayAdapter);

    layout.addView(spinner);

    setContentView(layout);
}

编辑:

只需澄清:如果Spinner未添加到布局内的Activity的内容中,则它是不可见的,因此这就是为什么您不会得到任何错误或任何东西的原因,因为其中没有' t您的代码本身是否有任何错误;-)


0
投票
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout layout = new LinearLayout(this);

        // The following can also be done using a loop
        ArrayList<String> spinnerArray = new ArrayList<String>();
        spinnerArray.add("one");
        spinnerArray.add("two");
        spinnerArray.add("three");
        spinnerArray.add("four");
        spinnerArray.add("five");


        Spinner spinner = new Spinner(MainActivity.this);
        ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, spinnerArray);
        spinner.setAdapter(spinnerArrayAdapter);
        layout.addView(spinner);
        setContentView(layout);
    }
    }
© www.soinside.com 2019 - 2024. All rights reserved.