gpt4 book ai didi

java - 使用一些令人困惑的代码初始化 ActionBarDrawerToggle

转载 作者:行者123 更新时间:2023-12-01 11:55:20 25 4
gpt4 key购买 nike

Android Studio 1.1 Beta 4

你好,

我期待下面的一些源代码,但我无法理解其背后的原因。我能理解这部分

 ActionBarDrawerToggle mActionBarDrawerToggle =
new ActionBarDrawerToggle(getActivity(), mDrawerLayout, toolbar, R.string.open, R.string.close)

使用带有 5 个参数的构造函数创建 ActionBarDrawerToggle 的新实例。

令人困惑的部分是为什么后面的大括号,我以前从未见过。这是做某事的捷径吗?:

{
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}

@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
}
};

完成:

 private void init() {
ActionBarDrawerToggle mActionBarDrawerToggle =
new ActionBarDrawerToggle(getActivity(), mDrawerLayout, toolbar, R.string.open, R.string.close) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}

@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
}
};

最佳答案

给定的结构:

SomeType st = new SomeType(){
...
}

创建匿名子类扩展SomeType并允​​许重写/添加方法、添加成员、进行初始化等

在您的情况下,{} 创建扩展 ActionBarDrawerToggle 的匿名子类并重写方法 onDrawerOpened()onDrawerClosed()

P.S.当您只需要一次类(class)时,它很有用。

关于java - 使用一些令人困惑的代码初始化 ActionBarDrawerToggle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28498211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com