Je fais quelque chose comme une application sociale.Android: Affichage de la boîte de dialogue personnalisée, changez la couleur du bouton avant de l'afficher pour la première fois.
Je voudrais que si quelqu'un a déjà vu quelque chose avant, que le bouton dans la vue change de couleur.
J'ai une méthode pour vérifier si quelqu'un a déjà consulté cette liste. Cela fonctionne dans le clickListener, et dira "déjà pressé".
J'ai du mal à trouver comment changer la couleur du bouton, peut-être sur la méthode onCreate. J'ai essayé de le passer comme un argument, mais la couleur changera la deuxième fois que la liste est tirée vers le haut ...
C'est ainsi que j'appelle mon dialogue et lui transmets l'ID de liste.
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View r = inflater.inflate(R.layout.list_view_dialog_layout, container, false);
checklistView = (UserlistView) r.findViewById(R.id.user_list);
checklistview.getList(getArguments().getString("list_id")); // Can be modified
return r;
}
dans cette fonction getList, je fais mon appel à ma base de données pour obtenir les informations de la liste.
public void getList(final String listID) {
// TODO fetch list information from params and fill fields
Event.requestEvent(listID, "AuthToken", new List.ListReceivedListener() {
@Override
public void onListReceived(lissts... lissteses) {
List lst = lissteses[0];
setInfo(lst);
LISTID = listID;
}
});
}
public void setInfo(List lst){
listTitleView.setText(lst.listName);
viewsCount.setText(Integer.toString(lst.views));
}
J'ai une fonction de vérificateur pour voir si l'utilisateur a déjà cliqué sur le "ont vu"
booléen public static vu (id String, utilisateur final String) { DatabaseReference rootref = FirebaseDatabase.getInstance () .getReference ("views"). enfant (id);
rootref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild(user)){
result = true;
}
else{
result = false;
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return result;
}
, je voulais appeler ce dans le getList() en tant que telle
if(viewed(lstID, curuser){
viewButton.setColorFilter(R.color.blue);
}
cela ne fonctionne pas pour la première fois la vue est créée, et ainsi, si l'utilisateur a déjà a cliqué sur la vue, se déconnecte et se reconnecte, puis sur afficher à nouveau, ce qui désactive le nombre de vues.
plz mettre à jour votre code ici, donc je ne peux ici ... –
votre code postal ici, Afin que nous puissions comprendre problème – Bhavnik
Vous devriez nous montrer le code que vous utilisez pour gérer le changement de couleur et où vous mettez alors nous pouvons vous aider. Avez-vous défini l'onClickListener après la mise à jour de la vue? –