mercredi 6 avril 2016

how to change image in gridview android when status in database change?

i need some help for my project. i want make my gridview image change when status on my database change. so i have 2 diferent image, 1 is main image and 2 for hidden my main image. and then when status on my db is "tutup" every image in gridview show image no 2, and when status "buka" gridview show the image with status "buka". it is possible ?? please let me know. thanks (NB im sorry if my english make you confuse :D) btw this is mu current code

final DBAdapter db = new DBAdapter(this);
public static Integer[] idGambar;
public static Integer[] idGambar2;
String[] nama;
String[] statusGale;
GridView gale;
boolean stopthread = false;
private static long back_pressed;
int idGaleri;

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.grid_view);

    Cursor c = db.getGambarGaleri();
    idGambar = new Integer[c.getCount()];
    idGambar2 = new Integer[c.getCount()];
    nama = new String[c.getCount()];
    statusGale = new String[c.getCount()];
    for(int i=0; i< c.getCount(); i++){
        c.moveToPosition(i);
        statusGale[i]= c.getString(c.getColumnIndex("Status_Galeri"));
        idGambar[i]=c.getInt(c.getColumnIndex("Gambar_Galeri"));
        idGambar2[i]=c.getInt(c.getColumnIndex("Gambar_Galeri2"));
        nama[i]=c.getString(c.getColumnIndex("Nama_Pahlawan"));
    } db.close();

    gale=(GridView)findViewById(R.id.gridViewGale);
    gale.setAdapter(new ImageAdapter(this));
    gale.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View v, int posisi, long id){
            Toast.makeText(getBaseContext(),nama[posisi], Toast.LENGTH_SHORT).show();
        }
    });
}

@Override
public void onBackPressed(){
    if(back_pressed + 2000 > System.currentTimeMillis()){
        if(stopthread = true){
            finish();
            Intent toMenu = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(toMenu);
            overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
            return;
        }super.onBackPressed();
    }else{
        Toast.makeText(getBaseContext(), "Tekan lagi untuk kembali", Toast.LENGTH_SHORT).show();
        back_pressed = System.currentTimeMillis();
    }
}

public class ImageAdapter extends BaseAdapter{
    Context mContext;
    int itemBackground;
    public ImageAdapter(Context c){
        mContext = c;
    }

    @Override
    public int getCount(){
        return idGambar.length;
    }

    @Override
    public Object getItem(int posisi){
        return posisi;
    }

    @Override
    public long getItemId(int posisi){
        return posisi;
    }

    @Override
    public View getView(int posisi, View convertView, ViewGroup parent ){
        Cursor c = db.getGambarGaleri();
        ImageView img;
        if(convertView == null){
            img = new ImageView(mContext);
            img.setLayoutParams(new GridView.LayoutParams(50,50));
            img.setScaleType(ImageView.ScaleType.CENTER_CROP);
            img.setPadding(5, 5, 5, 5);
        }else{
            img = (ImageView)convertView;
        }
        for(int i = 0 ; i<c.getCount();i++){
            if(statusGale[posisi] =="tutup"){
                img.setImageResource(idGambar2[posisi]);
            } else if(statusGale[posisi] =="buka"){
                img.setImageResource(idGambar[posisi]);
            }
        }
        return img;
    }

}

}

Aucun commentaire:

Enregistrer un commentaire