2017-01-08 7 views
1

私のonclicklistenerスイッチケースが機能しないようです。ここで コードが適切なスイッチcaseonclicklistenerとフラグメント

@Override 
    public View onCreateView(LayoutInflater inflater, 
          ViewGroup container, 
          Bundle savedInstanceState) { 

     final View rootView = inflater.inflate(R.layout.levelfirst, container, false); 
     ImageView homeb = (ImageView)rootView.findViewById(R.id.homeb); 
     TextView one = (TextView)rootView.findViewById(R.id.one); 
     TextView two = (TextView)rootView.findViewById(R.id.two); 

     rootView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       if(view.getId() == R.id.one){ 

        Toast.makeText(getActivity(),"its working",Toast.LENGTH_SHORT).show(); 

       } 

      } 
     }); 

は、単一の項目にonclicklistener設定で正常に動作しますが、いくつかの理由から、それはそれを検出しません。私はスイッチケースアプローチを使用しようとしましたが、何も返されません。しかし、私はrootviewチャイルドのクリックを記録しようとするとonclicklistener自体を検出します。

答えて

1

あなたがOnClickListenerを実装することで、適切なスイッチケースのオーバーライドのonClickをしたい場合は、あなたが簡単にView.OnClickListnerを実装し、オーバーその方法に乗ると、その中にあなたのスイッチを入れることができますよう

public class Fragment_treasures extends Fragment implements OnClickListener{ 

      @Override 
      public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) { 

       View v = inflater.inflate(R.layout.fragment_treasures, container, false); 

       Button b = (Button) v.findViewById(R.id.StartButton); 
       b.setOnClickListener(this); 
       return v; 
      } 

      @Override 
      public void onClick(View v) { 
       switch (v.getId()) { 
       case R.id.StartButton: 

        ... 

        break; 
       } 
      } 
     } 
+1

おかげで、完全にあなたが歓迎 –

+0

@Stanislavボンダレンコ、それについて忘れてしまった鉱山の100%盗作など –

0

の下にあり、あなたのスイッチケースを使用。 例えば:

public class Fragment_treasures extends Fragment implements OnClickListener{ 

      @Override 
      public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) { 

       View v = inflater.inflate(R.layout.fragment_treasures, container, false); 

       Button b = (Button) v.findViewById(R.id.StartButton); 
       b.setOnClickListener(this); 
       return v; 
      } 

      @Override 
      public void onClick(View v) { 
       switch (v.getId()) { 
       case R.id.StartButton: 

        ... 

        break; 
       } 
      } 
     } 
+0

同じコードです –

関連する問題