首页 文章

OnClickListener到Spinner? ??

提问于
浏览
2

我需要一个OnClickListener给我的Spinner .

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

我的旋转器在这里:

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 . 事实上,如果我在my_spinner.xml中的文本视图中添加“ID”,我会得到一个空指针异常 .

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

请帮帮我们 .

2 回答

  • 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;
        }
    
  • 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) { }
        });
    

相关问题