Bouton.setClickable(faux) ne fonctionne pas
J'ai mis mButton.setClickable(false);
dans mon code, mais encore ce bouton est invoquée par global button.setOnClickListener
de mon code.
EDIT: désolé pour le retard de la mise à jour. Ci-dessous les détails du point de vue où je me trouve confronté à un problème.
à l'intérieur de ma listview customAdapter classe méthode getView
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
YourWrapper wrapper = null;
HashMap<String, Object> cTa= new HashMap<String, Object>();
cTa= d.getPosition(position)
Button mButton = (Button)convertView.findViewById(R.id.mBtn);
if (row == null)
{
row = inflater.inflate(R.layout.layout, parent, false);
wrapper = new YourWrapper (row);
row.setTag(wrapper);
}
else
wrapper = (YourWrapper) row.getTag();
if(success)
{
//section-1
mButton.setClickable(true);
}
else{
//section-2
mButton.setClickable(false);
mButton.setFocusable(false);
}
wrapper.getButton().setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
//operation
}
});
return row;
}
Ci-dessus est l'actuel code de travail,et sur la section-2 il rend la mButton cliquables - faux, et peut recevoir le focus - faux, mais il est encore écouter ci-dessous l'emballage.getButton().setOnClickListener() et effectuer l'opération. Merci de me suggérer. Désolé pour le retard de mise à jour. Merci!
Mise à JOUR: j'ai fait ci-dessous correctifs qui permettent de résoudre le problème pour l'instant.
//section-2
mButton.setVisibility(View.GONE);
mButton.setClickable(false);
mButton.setFocusable(false);
- Est-ce l'ensemble de votre code? Est
mButton
le même quewrapper.getButton()
? Si oui, pourquoi ne pas vous mettre la partie avecsetOnClickListener
dans votre section-1?
Vous devez vous connecter pour publier un commentaire.
Qui semble être de par leur conception. C'est à partir de la documentation de la Vue.setOnClickListener méthode:
setAlpha(0);
- le bouton est toujours cliquable même quand l'alpha est de 0. Qui, dans leur esprit sain ferait un bouton invisible et de le laisser être cliquable, dans quelles circonstances pourrait-on vouloir que, dans leur application? Certains stupide jeu de devinettes avec des boutons invisibles? Devinez où je suis! roule des yeuxAu lieu d'utiliser
setClickable(false)
utilisationsetEnabled(false)
setEnable(false)
si il y a d'arrière-plan pour l'afficher , il disparaîtAu lieu d'utiliser setClickable(faux) d'utilisation suivante
J'ai eu le même problème dans mon application, où je devais mettre mon bouton ne pas cliquable dans certaines conditions. cela a fonctionné pour moi. Espérons que cette aide.
Utilisation
View.setOnClickListener()
avantView.setClickable()
,ou la méthodesetOnclickLisnter()
sera fixé le drapeau vrai.Vous pouvez vérifier comme si(!vue.isClickable()) return;
Ce sera le travail en cas de Imageview ainsi que le bouton.
À l'intérieur de
onCreate()
, vous pouvez le fairesetEnabled(false)
ce qui équivaut àsetClickable(false)
.Nous sommes en mesure d'utiliser
setEnabled()
que la balise parce que c'est à l'état de vestiges uneffected sur l'invocation de la souris (à la différence desetClickable()
dont les changements d'état).