OnClickListener到Spinner? ??

时间:2012-03-26 10:06:30

标签: android spinner onclicklistener

我的Spinner需要一个OnClickListener。

我尝试了我在互联网上找到的所有东西,但都没有奏效。 请给我一个解决方案:

我的旋转器在这里:

     spinner = (Spinner)findViewById(R.id.spinner1);

     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource
     (this, R.array.gyerekek_array, R.layout.my_spinner);

     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);



     spinner.setAdapter(adapter);
     spinner.setOnItemSelectedListener(new ItemChooser());

这是my_spinner.xml:

<?xml version="1.0" encoding="utf-8"?>
   <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent"
    android:layout_width="fill_parent" 
    android:gravity="center_vertical|center_horizontal"
    android:textColor="#000000"
    android:paddingLeft="50dp"
    android:text="Sample Text" 
    android:textStyle="bold"
    android:textSize="31sp"
    >

</TextView>

我尝试了stackoverflow和互联网上的所有其他内容。我只是无法做到...... 我无法将onClickListener添加到微调器的默认TextView,因为我没有使用默认的微调器,我有自己的my_spinner.xml。 事实上,如果我添加一个&#34; ID&#34;在my_spinner.xml里面的文本视图中,我得到了一个空指针异常。

我甚至尝试在Spinner的顶部添加一个不可见的TextView,但是OnClick只能识别一个视图。

请帮帮我们。

2 个答案:

答案 0 :(得分:8)

使用此

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View view, int position, long id) {
            int item = spinner.getSelectedItemPosition();

        }
        public void onNothingSelected(AdapterView<?> arg0) { }
    });

答案 1 :(得分:5)

你不能在任何适配器视图上添加onclicklistener尝试使用setOntouchlistener希望它能帮到你

spinner = (Spinner)findViewById(R.id.spinner1);

     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource
     (this, R.array.gyerekek_array, R.layout.my_spinner);

     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

     spinner.setOnTouchlistener(this); 

     spinner.setAdapter(adapter);
     spinner.setOnItemSelectedListener(new ItemChooser());

////////////////////////////你的听众

public boolean onTouch(View v, MotionEvent event) {
        Log.d("Spinner","clicked");
        return false;
    }