私は自分の断片に(クリック後に別の画像にListview画像を変更する目的で)メソッドを持っています。私はこのメソッドを私のアダプタで呼びます..今、私はそのImageviewをクリックすると何も起こりません..再びそれをクリックすると..(このImageviewは再生と一時停止ボタンですので、私はそうで再び2回クリックする必要があり、アイコン...)..ImageViewは2回クリックすると画像を変更します
これは私のフラグメントの私の方法です:
@Override
public void imageButtonOnClick(View v, int position) {
playPause=(ImageView)v.findViewById(R.id.playPause);
Product m = productList.get(position);
playPause.setImageResource(m.getPlayPauseId());
playPause.setTag(position);
playPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = (Integer) v.getTag();
Product m =(Product) productList.get(pos);
if (paused) {
m.setPlayPauseId(R.drawable.ic_pause);
paused=false;
}else {
m.setPlayPauseId(R.drawable.ic_play);
paused = true;
}
adapter.notifyDataSetChanged();
}
});
}
私は私のアダプターでこのようにそれを呼び出す:
これは私のインターフェースとコンストラクタで、私のアダプタにもあります:
public interface PlayPauseClick {
void imageButtonOnClick(View v, int position);
}
private PlayPauseClick callback;
public void setPlayPauseClickListener(PlayPauseClick listener) {
this.callback = listener;
}
は、私は私の断片で、このインタフェースを実装しました
更新
Productクラス:私はあなたが戻ってコールを送信する必要はありませんだと思う
public class Product implements Serializable {
@SerializedName("pid")
public int pid;
@SerializedName("name")
public String name;
@SerializedName("qty")
public int qty;
@SerializedName("price")
public String description;
@SerializedName("image_url")
public String image_url;
@SerializedName("date")
public String date;
private int PlayPauseId;
public int getPlayPauseId() {
return PlayPauseId;
}
public void setPlayPauseId(int playPauseId) {
PlayPauseId = playPauseId;
}
私はあなたがinitする必要があると思いますialize 'boolean paused; –
@SelimAjimiあなたのメソッドが表示されませんでした –
クラス製品のコードを教えてもらえますか? @SelimAjimiが示唆しているように特別なチェックを行わなかった場合、製品は既に選択されたリソースに対して同じパスを返す可能性があります。 – rencsaridogan