私は複数の項目を持つListViewを持っています。 私は、ユーザがアイテムを投票またはダウンボートできるようにしたい。別のボタンをクリックしたときにボタンを変更します
ユーザーが「upvote」ボタンをクリックすると、緑色に変わり、「downvote」ボタンは通常の状態に戻ります(または変更されません)。
ユーザーが「downvote」ボタンをクリックしたときと同じ原則が適用されます。 「V」は、ボタンそのものであるので、私は美しいNULLポインタを取得する(と私はそれに値する)このコード
holder.buttonUpvote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageButton buttonUpvote = (ImageButton) v.findViewById(R.id.buttonUpvote);
ImageButton buttonDownvote = (ImageButton) v.findViewById(R.id.buttonDownvote);
buttonUpvote.setBackgroundColor(v.getResources().getColor(R.color.upvoteColor));
buttonDownvote.setBackgroundColor(Color.TRANSPARENT);
Toast.makeText(v.getContext(), "voted UP", Toast.LENGTH_LONG);
}
});
holder.buttonDownvote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageButton buttonUpvote = (ImageButton) v.findViewById(R.id.buttonUpvote);
ImageButton buttonDownvote = (ImageButton) v.findViewById(R.id.buttonDownvote);
buttonUpvote.setBackgroundColor(Color.TRANSPARENT);
buttonDownvote.setBackgroundColor(v.getResources().getColor(R.color.downvoteColor));
Toast.makeText(v.getContext(), "voted DOWN", Toast.LENGTH_LONG);
}
});
を試してみた上で、今から
... 私がどのように表示されません私はこれから出ることができます...
レイアウトは、相対レイアウトの2つのボタンです。
助けていただければ幸いです。 ありがとうございます。
はたぶん、あなただけonClickListenerの外にボタンを初期化している必要があります。次に親ビューは必要ありません。 – creativecreatorormaybenot
@creativecreatorormaybenotはい、これも機能し、各リスナーでボタンが同じであるため、重複した呼び出しを避けることができます。また、私は親のクラスを気にせずにレイアウトを変更することができます。 – Fundhor