如何刷新我的自定义列表视图

时间:2017-08-03 04:26:43

标签: android listview baseadapter

我正在将数据库更新到其他类,我希望在进入主要活动时更新自定义列表视图。我的customListview仍然存在 我已经搜索过这个问题,但我自己无法解决。我应该在哪里添加代码来解决这个问题?请帮助我3天没解决我的问题。

     public class MainActivity extends AppCompatActivity {
veritabani vtabani; //database
List<Yukleclas> yuklele =new ArrayList<Yukleclas>();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    vtabani=new veritabani(this);
    OzelAdaptor adaptor=new OzelAdaptor(this,yuklele);



    ListView listView=(ListView) findViewById(R.id.listview);


    String[] sutunlar =


   {"id","bilgi","simdikiyil","simdikiay","simdikigun","alarmsaat",
   "alarmdakika","gsonrayil","gsonraay","gsonragun","hsonrayil","hsonraay",
    "hsonragun","asonrayil","asonraay","asonragun","seviye","durum"};

SQLiteDatabase dboku =vtabani.getReadableDatabase();
Cursorcursor=dboku.query("tablo_adi",sutunlar,null,null,null,null,null);
while (cursor.moveToNext()) {
if (cursor.getInt(17)==1) { 
yuklele.add(new Yukleclas(cursor.getString(1), cursor.getInt(2), 
cursor.getInt(3), cursor.getInt(4), 
cursor.getInt(7),cursor.getInt(8),cursor.getInt(9),cursor.getInt(10),
cursor.getInt(11),cursor.getInt(12),cursor.getInt(13),cursor.getInt(14),
cursor.getInt(15),cursor.getInt(16)));
}
}
cursor.close();
dboku.close();
listView.setAdapter(adaptor);
adaptor.notifyDataSetChanged();
}
public void ekleyegit(View view) { 
Intent intent =new Intent(this,ekleactivity.class);
startActivity(intent);
finish();
}}

这是myAdapter:

public class OzelAdaptor extends BaseAdapter {

LayoutInflater layoutInflater;
List<Yukleclas> list;

public OzelAdaptor(Activity activity,List<Yukleclas> mList){
layoutInflater= (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    list=mList;

}
@Override
public int getCount() {
    return list.size();
}

@Override
public Object getItem(int position) {
    return list.get(position);
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View satirView;
    satirView=layoutInflater.inflate(R.layout.satir,null);
    TextView tv_tarih = (TextView)  satirView.findViewById(R.id.text_tarih);
    TextView tv_bilgi= (TextView) satirView.findViewById(R.id.text_bilgi);
    ImageView imageView= (ImageView) satirView.findViewById(R.id.imageView);


    Yukleclas yukleclas =list.get(position);
    tv_bilgi.setText(yukleclas.getBilgi());


    if(yukleclas.getSeviye()==1){
        tv_tarih.setText("Sonraki tekrar:" +yukleclas.getGun() +"/" +yukleclas.getAy() + "/" +yukleclas.getYil() );
    }else if(yukleclas.getSeviye()==2){
        tv_tarih.setText("Sonraki tekrar:" +yukleclas.getGsgun() +"/" +yukleclas.getGsay() + "/" +yukleclas.getGsyil() );
    }else if (yukleclas.getSeviye()==3){
        tv_tarih.setText("Sonraki tekrar:" +yukleclas.getHsgun() +"/" +yukleclas.getHsay() + "/" +yukleclas.getHsyil() );
    }else  if (yukleclas.getSeviye()==4){
        tv_tarih.setText("Sonraki tekrar:" +yukleclas.getAsgun() +"/" +yukleclas.getAsay() + "/" +yukleclas.getAsyil() );
    }







    if(yukleclas.getSeviye()==1){
        imageView.setImageResource(bir); // eğer 1. seviyede ise bir isimli ikonu göster
    }else if(yukleclas.getSeviye()==2){
        imageView.setImageResource(iki);
    }else if(yukleclas.getSeviye()==3){
        imageView.setImageResource(uc);
    }else if(yukleclas.getSeviye()==4){
        imageView.setImageResource(ic_launcher);
    }


    return satirView;
}

}

这是我的get-set课程:

public class Yukleclas {
private String bilgi;
private int yil;
private int ay;
private int gun;
private int seviye;
private int gsyil;
private int gsay;
private int gsgun;
private int hsyil;
private int hsay;
private int hsgun;
private int asyil;
private int asay;
private int asgun;


public Yukleclas(String mBilgi,int mYil,int mAy,int mGun,int mGsyil,int 
mGsay,int mGsgun,int mHsyil,int mHsay,int mHsgun,int mAsyil,int mAsay,int 
mAsgun,int mSeviye){
    yil=mYil;
    bilgi=mBilgi;
    ay=mAy;
    gun=mGun;
    gsyil=mGsyil;
    gsay=mGsay;
    gsgun=mGsgun;
    hsyil=mHsyil;
    hsay=mHsay;
    hsgun=mHsgun;
    asyil=mAsyil;
    asay=mAsay;
    asgun=mAsgun;
    seviye=mSeviye;

}

public int getYil() {
    return yil;
}

public void setYil(int yil) {
    this.yil = yil;
}

public int getSeviye() {
    return seviye;
}

public void setSeviye(int yil) {
    this.seviye = seviye;
}

public String getBilgi() {
    return bilgi;
}

public void setBilgi(String bilgi) {
    this.bilgi = bilgi;
}

public int getAy() {
    return ay;
}

public void setAy(int ay) {
    this.ay = ay;
}

public int getGun() {
    return gun;
}

public void setGun(int gun) {
    this.gun = gun;
}

public int getGsyil() {return gsyil;
}

public void setGsyil(int gsyil) {this.gsyil = gsyil;
}

public int getGsay() {return gsay;
}

public void setGsay(int gsay) {this.gsay = gsay;
}

public int getGsgun() {return gsgun;
}

public void setGsgun(int gsgun) {this.gsgun = gsgun;
}

public int getHsyil() {return hsyil;
}

public void setHsyil(int hsyil) {this.hsyil = hsyil;
}

public int getHsay() {return hsay;
}

public void setHsay(int hsay) {this.hsay = hsay;
}

public int getHsgun() {return hsgun;
}

public void setHsgun(int hsgun) {this.hsgun = hsgun;
}

public int getAsyil() {return asyil;
}

public void setAsyil(int asyil) {this.asyil = asyil;
}

public int getAsay() {return asay;
}

public void setAsay(int asay) {this.asay = asay;
}

public int getAsgun() {return asgun;
}

public void setAsgun(int asgun) {this.asgun = asgun;
}
}

我知道这很复杂,但如何更换我的customlistview?

1 个答案:

答案 0 :(得分:0)

简单方法是在 adapter.notifyDataSetChanged() 功能中拨打 onResume

但我建议您检查一下list是否已更新,然后才会调用 adapter.notifyDataSetChanged() 。您可以通过多种方式执行此操作,但是为了更清晰的方法,可以使用EventBus来触发事件并收听它们,因此您可以在每次更新dataBase时触发事件并听取此活动只需拨打 adapter.notifyDataSetChanged

即可
相关问题