简体   繁体   English

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

[英]Create a spinner programmatically in Android

I want to create a spinner without using XML.我想在不使用 XML 的情况下创建一个微调器。 I am new in android and my knowledge is limited.我是 android 新手,我的知识有限。 By now I have this code (see above) and I want my spinner in one of the tabs of my TabActivity .现在我有这个代码(见上文),我希望我的微调器在我的TabActivity的选项卡之一中。 There is no obvious error but when I open my activity the tab is empty.没有明显的错误,但是当我打开我的活动时,选项卡是空的。 I would appreciate some help.我会很感激一些帮助。

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);

}

You need to add the Spinner to a layout.您需要将Spinner添加到布局中。

First create a container for the Spinner and then create the Spinner and add it to your container .首先为Spinner创建一个container ,然后创建Spinner并将其添加到您的container Next set content of you Activity to your container .接下来将您Activity内容设置为您的container

This could be done like this, in your onCreate method:这可以在您的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);
}

EDIT:编辑:

Just to clarify: if the Spinner isn't added to the content of the Activity inside a layout, it isn't visible, so that's why you don't get any errors or anything, because there isn't any errors in your code, per se ;-)澄清一下:如果Spinner未添加到布局内的Activity内容中,则它不可见,这就是为什么您不会收到任何错误或任何内容的原因,因为您的代码中没有任何错误, 本身;-)

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);
    }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM