0

我正在对微调器的onItemSelected功能进行一些测试。我在做什么我相信这很简单,我的活动中有一个文本视图,没有起始字符串值(也就是说,文本视图开始为空白)。我有两个微调器,并且我将 onItemSelected 函数设置为检索所选项目的字符串值,并将此值设置为文本视图中的字符串值,用于任一微调器。很简单,但我无法通过显示从任一微调器中选择的项目来让 textView 做出响应,或者更糟糕的是,要正确调用 onItemSelected 函数。这是我的微调器和 textview 的 xml:

<Spinner
    android:id="@+id/iHaveSpinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/haveTextField"
    android:layout_marginTop="16dp" />

<Spinner
    android:id="@+id/iWantSpinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/iWantView"
    android:layout_centerHorizontal="true" />

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:id="@+id/resultView"
        android:layout_below="@+id/iWantSpinner"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="19dp"/>

以及活动的 onItemSelected 函数:

public void onItemSelected(AdapterView<?> spinner, View view, int pos, long id) {
    int ID = spinner.getId();
    TextView result = (TextView) findViewById(R.id.resultView);
    switch(ID)
    {
        case (R.id.iHaveSpinner):
            String string1 = spinner.getItemAtPosition(pos).toString();
            result.setText(string1);
            break;
        case (R.id.iWantSpinner):
            String string2 = spinner.getItemAtPosition(pos).toString();
            result.setText(string2);
            break;
    }

}

我是否onItemSelected错误地执行了该功能?是否有 textView 的任何属性不允许我编辑字符串值?看起来很简单,但看起来我被卡住了

4

1 回答 1

0

找到了。简单修复,忘记为微调器注册回调函数。在初始化我的微调器/填充微调器项目时,我缺少以下两行:

iHaveSpinner.setOnItemSelectedListener(this);
iWantSpinner.setOnItemSelectedListener(this);

德普

于 2013-09-12T18:18:40.117 回答