如何从另一项活动刷新调用的ListView适配器 - notifyDataSetChanged()

2019-09-29 05:20发布

我想从另一个调用活动比较列表视图适配器插入记录后sqllite分贝。

我不能调用adapter.notifyDataSetChanged()方法。 什么是做到这一点的最好办法。

public void onClick(View v) {
    TextView item_name;
    item_name=(TextView) findViewById(R.id.eItemName);         
    Log.d("Insert: ", "Inserting ..");
    db.add_item(new Item(item_name.getText().toString()), getApplicationContext());

    // I want to call the method HERE!!!! 

    finish();   
}

Answer 1:

只是

finish()当前活动,呼叫adapter.notifyDataSetChanged()onActivityResult()在以前的活动(如我假设你的列表视图在此之前的活动)。

使用从以前的活动也开始你当前活动startActivityForResult();

或者,如果你有这个活动列表适配器的参考,然后使用该引用调用adapter.notifyDataSetChanged() (但我认为它不是一个好的做法)



Answer 2:

更好的选择将被重新加载你ListView里面新数据onResume()你的活动,你有ListView控件。 有没有需要调用notifyDataSetChanged()从另一个类,你没有你的列表中看到您的另一活动。

@Override
protected void onResume() {
    super.onResume();

    //fill your Collection with new data
    // setAdapter or notify your adapter
}


文章来源: How to call ListView adapter from another activity for refresh - notifyDataSetChanged()