android onclicklistener 参数,在Android中设置微调器onClickListener()

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

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

我确定我想调用onClickListener而不是onItemClickListener . 我在Stack Overflow上找到了其他人提出的问题,Is there a way to use setOnClickListener with an 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 adapter = new ArrayAdapter(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

}

});

}

文件layoutspinner.xml

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"/>

我究竟做错了什么?

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

每个推荐我试过这个:

int a = spinnerMes.getCount();

int b = spinnerMes.getChildCount();

System.out.println("Count = " + a);

System.out.println("ChildCount = " + b);

for (int i = 0; i < b; i++) {

View v = spinnerMes.getChildAt(i);

if (v == null) {

System.out.println("View not found");

}

else {

v.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//Click code

}

});

}

}

但是LogCat没有显示出有希望的结果 .

10-14 16:09:08.127: INFO/System.out(3116): Count = 7

10-14 16:09:08.127: INFO/System.out(3116): ChildCount = 0

我已经在API级别7和8上对此进行了测试,结果相同 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值