我有 MainActivity 和适配器。创建适配器的新实例时,我创建新 Realm 。如何在 onDestroy 方法中关闭 Realm ?
这是我尝试过的:
MainActivity 的 onCreate:
public class MainActivity extends AppCompatActivity {
private ExpandableListView myELV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final android.support.v7.app.ActionBar actionBar = this.getSupportActionBar();
myELV = findViewById(R.id.expandable_list_view);
myAdapter adapter = new myAdapter(getApplicationContext());
myELV.setAdapter(adapter);
适配器:
public class myAdapter extends BaseExpandableListAdapter{
private Context context;
private Realm realm;
public myAdapter(Context context){
this.context = context;
}
public void closeRealm(){
realm.deleteAll();
realm.close();
}
MainActivity 的 onDestroy:
@Override
protected void onDestroy() {
super.onDestroy();
ExpandableListAdapter adapter = myELV.getExpandableListAdapter();
adapter.closeRealm();
}
但是即使 closeRealm() 是公开的,也是无法访问的。我想知道为什么?
最佳答案
呼应,@EpicPandaForce 的回答,ExpandableListAdapter是接口(interface)类型。您的 closeRealm() 方法不是该接口(interface)中的方法之一。要解决此问题,您可以做的一件事是创建一个扩展 ExpandableListAdapter 的新接口(interface),并列出您想要的新公共(public)方法的签名。然后,任何实现新接口(interface)的类都可以替换为实现新接口(interface)的任何其他类。
关于java - 如何在主 Activity 中调用myCustomAdapter的公共(public)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44574148/