6
votes

Ne pas obtenir ONIMCLICK EVENT DE LA LISTVIEW

J'utilise une liste personnalisée. Quand je clique sur Listview, je n'ai pas obtenu événement Onclick.

Voici mon code. P>

private class OrderAdapter extends BaseAdapter
{
    private LayoutInflater mInflater;

    public OrderAdapter(Context context) 
    {
        mInflater = LayoutInflater.from(context);
    }

    public View getView(int position, View convertView, ViewGroup parent) 
    {
        ViewHolder holder;

        if (convertView == null) 
        {
            convertView = mInflater.inflate(R.layout.example, null);
            holder = new ViewHolder();

            holder.txtTest = (TextView) convertView.findViewById(R.id.txtTest);

            convertView.setTag(holder);
        } 
        else 
        {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.txtTest.setText(Util.SampleTest.get(position));
                    return convertView;
    }

    public class ViewHolder 
    {
        public TextView txtTets;
    }

    public int getCount(){return Util.SampleTest.size();}

    public Object getItem(int position){return position;}

    public long getItemId(int position){return position;}
}


6 commentaires

Y a-t-il des éléments dans la liste? Vous définissez OnImclick. Pouvez-vous publier le code pour commande.


Oui, il y a plus de 20 articles dans la liste. Ici, j'ajoute ma commande.


la liste est affichée dans la liste de liste ..?


Oui, il est affiché à listeView.


GetItem devrait retourner util.samplétest.get (position) mais je ne pense pas que ce soit le problème.


Si cette réponse a résolu votre problème, marquez-la comme une réponse s'il vous plaît.


6 Réponses :


3
votes

2 commentaires

J'ai déjà ce code. Mais je n'aime pas faire comme ça.


Ensuite, vous n'aurez apparemment pas onclickItemlistener travaillant :) Les objets concentrés semblent se lier onclick événements et sont placés sur l'élément de la liste. semble assez raisonnable



0
votes

Premier, définissez l'adaptateur, puis définissez sur CLICK Evemeur sur ListView. Puis essayez à nouveau.


4 commentaires

Sinon que .. @Override publique Void OnitemClick (Adapterview Arg0, View Arg1, int Arg2, Long Arg3) {// Méthode de méthode générée automatiquement TODO} Cette fonction écrit hors de la méthode de création et implémente OnClickListener dans votre activité


Vous utilisez XML pour la liste des commandes de la vue ...?


Vérifiez que ClickAlble Property est désactivé ou une propriété modifiatable est définie de tout contrôle de listeView ...


Je l'ai vérifié . Je ne déclare aucune propriété comme celle-ci.



5
votes

Si vous avez des éléments cliquables dans votre liste, vous devez jouer avec l'accent pour pouvoir recevoir les deux éléments de la liste cliquée sur les éléments de l'événement et de la liste des enfants Cliquez sur les événements.

Appelez le code suivant sur vos articles de liste comme ils sont créé: xxx

trouvé sur http: / /code.google.com/p/android/issues/detail?id=3414 , réponse n ° 27


0 commentaires

0
votes

Assurez-vous que votre mise en page personnalisée n'a pas de case avant le [code> TextView . Vous pouvez utiliser un imageview pour remplir la coche fonctionnalité.


0 commentaires

19
votes

Vous devez définir Android: DescendantFocusability = "Blocsdescendants" Dans votre fichier de présentation XML personnalisé pour la linearlayout ou quelle que soit la mise en page que vous utilisez. (Pour définir votre ligne personnalisée)

Cela devrait résoudre votre problème.parce que cela a résolu le mien.Si il résoue bien marquer mon message comme réponse.

Vous pouvez également renvoyer les commentaires ici


0 commentaires

0
votes

Essayez ceci. XXX


0 commentaires