2012-03-26 10 views
2

私は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です:

私は、インターネットからstackoverflowの他のすべてからすべてをしようと試み
<?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> 

。私はそれを作ることができません... 私は自分のmy_spinner.xmlを持っているので、私はデフォルトのスピナーを使用しないので、スピナーのデフォルトTextViewにonClickListenerを追加できません。 実際、my_spinner.xml内のテキストビューに「ID」を追加すると、nullポインタ例外が発生します。

Spinnerの上部に目に見えないTextViewを追加しようとしましたが、OnClickによって1つのビューしか検出できませんでした。

私を助けてください。あなたが任意のアダプタビューにonclicklistenerを追加することはできません

答えて

5

は、それはあなた

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()); 

///////////////////役立つことを願っていますsetOntouchlistener使用するようにしてください/////////リスナー

public boolean onTouch(View v, MotionEvent event) { 
     Log.d("Spinner","clicked"); 
     return false; 
    } 
+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) { } 
    }); 
+0

私は上をクリックした場合、私のコードを実行します直接イベントを必要としますスピネrのボタン。スピナーのアイテムではありません。 –

+1

Adam Varhegyiがスピナー用のsetOntouchlistenerを使用すると、確実に手伝ってくれます – vipin