我正在開發一個帶有照片的列表視圖,並且在這張照片下面我有1個普通按鈕和1個切換按鈕。 我希望這個切換按鈕的行爲就像一個Like按鈕 - 如果我點擊一個按鈕,我會增加當前照片的喜歡數量,如果再次按下按鈕,我會減少喜歡的按鈕數量。ListView中的ToggleButton奇怪的行爲
這裏的代碼如下:
private View.OnClickListener likeBtnClickListener = new View.OnClickListener()
{
@Override
public void onClick(View view)
{
if(likeBtn.isChecked())
{
likeBtn.setBackgroundDrawable(getContext().getResources().getDrawable(R.drawable.heart));
likeBtn.setChecked(false);
if(Integer.parseInt(likeBtn.getTextOff().toString())>0)
{
likeBtn.setTextOff(String.valueOf(Integer.parseInt(likeBtn.getTextOn().toString())-1));
}
Log.e(String.valueOf(view.getTag()), "isChecked");
}
else
{
likeBtn.setBackgroundDrawable(getContext().getResources().getDrawable(R.drawable.heart_on));
likeBtn.setChecked(true);
likeBtn.setTextOn(String.valueOf(Integer.parseInt(likeBtn.getTextOff().toString())+1));
Log.e(String.valueOf(view.getTag()), "!!isChecked");
}
}
};
下面是從我的適配器getView方法:
public View getView(int position, View convertView, ViewGroup parent)
{
View view = convertView;
if(view == null)
{
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.photo_view_cell, null);
}
Photo dData = data.get(position);
if(dData!=null)
{
ImageView profileImg = (ImageView) view.findViewById(R.id.profile_img);
TextView username = (TextView) view.findViewById(R.id.name);
ImageView photoImage = (ImageView) view.findViewById(R.id.image);
TextView date = (TextView) view.findViewById(R.id.date);
likeBtn = (ToggleButton) view.findViewById(R.id.likesBtn);
ToggleButton commentBtn = (ToggleButton) view.findViewById(R.id.commentsBtn);
int noLikes = dData.getNoLikes();
if(noLikes>0)
{
likeBtn.setChecked(true);
likeBtn.setBackgroundDrawable(getContext().getResources().getDrawable(R.drawable.heart_on));
likeBtn.setTextOn(String.valueOf(noLikes));
likeBtn.setTextOff(String.valueOf(noLikes));
}
else
{
likeBtn.setChecked(false);
likeBtn.setBackgroundDrawable(getContext().getResources().getDrawable(R.drawable.heart));
likeBtn.setTextOff("0");
likeBtn.setTextOn("0");
}
likeBtn.setOnClickListener(likeBtnClickListener);
username.setText(dData.getUser().getUsername());
photoImage.setImageBitmap(dData.getImage());
date.setText(dData.getDate());
}
view.setTag(position);
return view;
}
現在的問題是,這種切換按鈕,不因爲他們應該工作。例如,現在,我在主列表視圖中顯示了3張照片 - 每張照片下方有1個切換按鈕和一個正常按鈕。當我點擊第二個按鈕下方的切換按鈕時 - 第一個照片下方的切換按鈕激活 - 如果我點擊下面的切換按鈕或有時不切換此切換按鈕。
你能告訴我我做錯了什麼嗎?
謝謝!