如何更改通过代码添加的微调器的大小?

时间:2012-07-02 16:07:55

标签: android spinner

我在一个类似的字典知识测试人员的项目上工作。我希望通过代码向spinner添加2个语言名称,但是我遇到了问题,这让我发疯了。

当我使用标记为“1”的部分时没有问题,但另一方面,如果我使用标记为“2”的部分,则会出错。同时,如果我使用“1”,它看起来像全屏,但我还没有找到将其大小更改为更小的方法。

请提前帮助我们,谢谢。

1)Spinner spin = new Spinner(this); spin.setAdapter(dataAdapter); setContentView(spin);

2)Spinner spin2 = (Spinner) findViewById(R.id.spinner1); spin2.setAdapter(dataAdapter); setContentView(spin2);

2 个答案:

答案 0 :(得分:1)

您在1中使用它的方式是将微调器的视图设置为唯一可见的视图。

您需要的是在XML文件中定义视图,然后将其设置为内容视图

例如main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<Spinner
    android:id="@+id/spinner2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

</LinearLayout>

然后在你的.java文件中

    /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    //setting up the adapters
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
    ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);

    //adding things to the adapters
    dataAdapter.add("English");
    dataAdapter2.add("Spanish");

    //setting the spinners up from their id in the XML file
    Spinner spinner1 = (Spinner)findViewById(R.id.spinner1);
    Spinner spinner2 = (Spinner)findViewById(R.id.spinner2);

    //setting the spinners adapters
    spinner1.setAdapter(dataAdapter);
    spinner2.setAdapter(dataAdapter2);      

}

应该这样做,如果我解释错误的问题,只需更详细地回复。

答案 1 :(得分:0)

我解决了这个问题。问题是我加了亲戚和线性布局同时和程序无法正确访问微调器。现在我删除线性布局,只添加相对布局和设计我的屏幕。现在没问题了。感谢所有对此主题感兴趣的人并给出了答案。