【问题标题】:How to call public methood of myCustomAdapter in Main Activity?如何在 Main Activity 中调用 myCustomAdapter 的公共方法?
【发布时间】:2017-06-15 18:07:32
【问题描述】:

我有 MainActivity 和 Adapter。创建适配器的新实例时,我会创建新领域。如何关闭 onDestroy 方法中的领域? 这是我尝试过的:
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() 是无法访问的,即使它是公开的。我想知道为什么?

【问题讨论】:

  • 那有什么不好的呢?
  • Android Studio 将 closeRealm() 标记为红色,表明不存在这种方法。我可以访问其他适配器方法,但这不是。
  • ExpandableListAdapter 不是myAdapter 类型。顺便说一句,您确定要删除所有数据吗? :o
  • 是的!就是这样!有效。是的,我现在将在测试时删除领域。谢谢!

标签: java android android-studio realm


【解决方案1】:

回响,@EpicPandaForce 的回答,ExpandableListAdapter 是接口类型。您的 closeRealm() 方法不是该接口中的方法之一。您可以做的一件事是创建一个扩展 ExpandableListAdapter 的新接口,并列出您想要的新公共方法的签名。然后,任何实现新接口的类都可以替换为实现新接口的任何其他类。

【讨论】:

    【解决方案2】:

    是的,使用@EpicPandaForce 的回答,如果将来有人想知道,我会在代码中发布更改:

        @Override
    protected void onDestroy() {
        super.onDestroy();
        myAdapter adapter =  (myAdapter) myELV.getExpandableListAdapter();
        adapter.closeRealm();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-17
      • 2021-12-01
      • 2011-01-30
      • 2011-10-31
      • 2019-11-23
      • 2011-12-11
      • 1970-01-01
      • 2021-04-12
      相关资源
      最近更新 更多