2012-11-24 5 views
1

Je dois implémenter des onglets dans mon application en utilisant ActionBarSherlock. Je suis cet exemple here. Maintenant, je veux ajouter des boutons à l'un des fragments, et effectuer une action dessus. Comment fait-on ça ? Supposons que ce soit la disposition où le bouton estOnglets ActionBarSherlock

public class AFragment extends SherlockFragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.hello, container, false); 
    } 
} 

Comment lire un bouton de la vue?

Répondre

4
public class AFragment extends SherlockFragment { 
private Button button;  
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    // Inflating the layout view to this fragment 
    View view = inflater.inflate(R.layout.hello, container, false); 
    button = (Button) view.findViewById(R.id.button_id); 

    button.setOnClickListener(this); 

    return view; 
    } 
    @Override onClick() { 
     switch(v.getId()_ { 
      case R.id.button_id: 
         //Your logic for button goes here 
         break; 
     } 
    } 
} 
} 
2

Je crois que c'est ainsi que cela se fait. pour autant que je sache. Je n'ai pas encore eu le mien pour travailler mais je ne pense pas que mon problème est ici.

private Button button;  

    public class AFragment extends SherlockFragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View inflater = inflate(R.layout.hello, container, false); 
     button = (Button) inflater.findViewById(R.id.reminder_slider); 
     button setOnItemClickListener(new OnClickListener() { 
     //do stuff on item click aka @Override onClick() 
     } 
     return inflater; 
    } 
} 
+0

ADR a. J'ai oublié que vous avez déjà inflat défini dans vos arguments. Il suffit de changer inflater pour voir – doubleA

1
private Button button;  

    public class AFragment extends SherlockFragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.hello, container, false); 
     //finding the button by ID inside the inflated view 
     button = (Button) view.findViewById(R.id.btnid); 
     //setting an event 
     button.setOnItemClickListener(new OnClickListener() { 

     }); 
     return view; 
    } 
Questions connexes