0

我正在做一个类似字典知识测试器的项目。我想要 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);

4

2 回答 2

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

}

应该这样做,如果我对问题的解释有误,请更详细地回答。

于 2012-07-02T16:40:35.160 回答
0

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

于 2012-07-03T22:40:47.967 回答