我正在製作類似社交應用的東西。Android:自定義對話框視圖,在第一次顯示之前更改按鈕顏色
我想,如果有人已經查看過某些東西,視圖中的按鈕將改變顏色。
我有一種方法來檢查是否有人查看過此列表之前。它在clickListener中工作,並會顯示「已按下」。
我很難弄清楚如何改變按鈕的顏色,也許onCreate方法。我試過將它作爲參數傳遞,但顏色將在第二次列表被拉起時發生變化...
這就是我如何調用我的對話框並將它傳遞給列表ID。
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;
}
在該函數getList中,我打電話給我的數據庫來獲取列表的信息。
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));
}
我有一個檢查功能,查看是否用戶已經點擊了「觀看了」
公共靜態觀察(串ID,最後絃樂用戶){布爾 DatabaseReference rootref = FirebaseDatabase.getInstance( ).getReference( 「意見」)孩子(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;
}
的話,我想它調用了的GetList()這樣
if(viewed(lstID, curuser){
viewButton.setColorFilter(R.color.blue);
}
這不會是第一次在視圖中創建工作,因此,如果用戶已經單擊視圖,註銷並重新登錄,然後再次單擊視圖,混淆視圖計數。
PLZ在這裏更新您的代碼,所以我可以在這裏... –
安置自己的代碼在這裏,這樣我們就可以找出問題 – Bhavnik
你應該告訴我們你的代碼用來處理顏色改變,並在那裏你把他們然後我們可以幫助你。視圖更新後您是否設置了onClickListener? –