相关疑难解决方法(0)

在Android中设置微调器onClickListener()

我试图让一个onClickListener在Spinner上触发,但是我收到以下错误:

Java.lang.RuntimeException是"不要为AdapterView调用setOnClickListener.你可能需要setOnItemClickListener,"

我确定我想调用onClickListener而不是onItemClickListener.我在Stack Overflow上找到了其他人提出的问题,有没有办法将setOnClickListener与Android Spinner一起使用?

答案说:

您必须在微调器的基础视图(通常是带有id:android.R.id.text1的TextView)上设置Click侦听器.为此:

创建自定义Spinner在构造函数(带属性)中通过提供布局android.R.layout.simple_spinner_item来创建微调器.执行findViewById(android.R.id.text1)以获取TextView现在将onClickListener设置为TextView

我已经尝试过那里提到的答案,但它似乎没有用.我在执行findViewById()后得到一个指向TextView的空指针.

这就是我正在做的事情:

Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.layoutspinner,dataArray);

spinner.setAdapter(adapter);

TextView SpinnerText = (TextView)findViewById(R.id.spinnerText);
if (SpinnerText == null) {
    System.out.println("Not found");
}
else {
    SpinnerText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            //Do something
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

文件layoutspinner.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
                  android:id="@+id/spinnerText"
                  android:singleLine ="true"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:textSize="6pt"
                  android:gravity="right"/>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我是Stack Overflow的新手,我没有找到任何办法向另一个帖子发布一个aditional问题(或评论,因为我需要很少代表)所以我开始了一个新问题.

每个推荐我试过这个:

int a = spinnerMes.getCount();
int b = spinnerMes.getChildCount();
System.out.println("Count = " + a); …
Run Code Online (Sandbox Code Playgroud)

java android onclick spinner

36
推荐指数
5
解决办法
10万
查看次数

标签 统计

android ×1

java ×1

onclick ×1

spinner ×1