2017-01-08 22 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工作正常,但由于某种原因,它不会检测到它。我试过使用开关盒的方法,但它不会返回任何东西。然而,它会检测onclicklistener本身,当我尝试记录rootview childs点击。

回答

1

如果你想有一个正确的开关情况下覆盖的onClick通过实施OnClickListener,有使用开关的情况下像下面

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邦达连科欢迎您 –

0

你可以很容易地实现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; 
       } 
      } 
     } 
+0

相同的代码,我的100%抄袭 –