7

だから、Spinner OnClickを割り当てたいのですが、次のエラーが発生します

     java.lang.RuntimeException: Don't call   setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead

スピナーをクリックしたときにデータを収集し、後で使用するために必要です。以前にやったのは知っていますが、コードを失いました。答えをグーグルで検索しましたが、うまくいくものは見つかりませんでした。これが役立つ場合は、ページビュー レイアウトを使用しています。これが私のコードです:

     public class DATA extends Fragment {
         public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        if (container == null) {
            return null;
        }

  ScrollView GPU_LAYOUT = (ScrollView)inflater.inflate(R.layout.gpu, container, false);

      final TextView higher_than =(TextView) GPU_LAYOUT.findViewById(R.id.gpu_higher_than_value);

        final Spinner min_max =(Spinner) GPU_LAYOUT.findViewById(R.id.min_max_spinner_gpulay);  

        min_max.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                String TMP=min_max.getSelectedItem().toString();
                higher_than.setText(TMP);
            }
        });

       return GPU_LAYOUT;
      }

私はそれを行うことができる方法はありますか?ありがとうございました!

4

4 に答える 4

8

そのように setOnTouchListener でそれを行うことができます:

spinner.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                Toast.makeText(getBaseContext(), "CLICK", Toast.LENGTH_SHORT).show();
                return false;
            }
        });
于 2013-12-11T11:00:06.113 に答える
0

setOnClickListenerSpinner で直接使用することはできません。やりたいならここがコツです。

 @Override
public boolean onTouch(View view, MotionEvent motionEvent) {
    switch (view.getId()) {
        case R.id.sp_category:
            if (motionEvent.getAction() == MotionEvent.ACTION_UP)//replacing with onclick
            {
                //Perform any action
            }
            break;
    }
    return true;
}

このコードMotionEvent.ACTION_UPでは、このタッチを onclick のように動作させます。それがあなたを助けることを願っています!

于 2018-05-23T11:31:10.400 に答える