【发布时间】:2017-08-23 10:56:04
【问题描述】:
我想知道是否有一种方法可以维护 BaseActivity (Java),例如,用于 Java 和 Kotlin 活动的功能性 BottomNavigationView。将来我打算将(几个)Java 活动变成 Kotlin,因为新的活动是在 Kotlin 中开发的。 问题是 Java 能够保持正确创建 BottomNavigationView,因为 Kotlin 播放为 null 并且 BottomNavigationView 加载是在 Java 中维护的循环之后进行的。 另一种尝试是尝试将我的 Java BaseActivity 转换为 Kotlin,但破坏了各种 Java Activity 的操作。
class KotlinActivity : BaseActivity() {
public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_my_wishes_list)
ButterKnife.bind(this)
//bottomNavigationMenu is null and lost all configurations from the BaseActivity
bottomNavigationMenu.menu.getItem(0).isChecked = true
}
}
public class BaseActivity extends AppCompatActivity {
@BindView(R.id.bottom_navigation_menu)
protected BottomNavigationView bottomNavigationMenu;
@Override
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
setupBottomMenu();
}
private void setupBottomMenu() {
if (bottomNavigationMenu != null) {
BottomNavigationViewHelper.removeShiftMode(bottomNavigationMenu);
bottomNavigationMenu.setOnNavigationItemSelectedListener(
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
setupBottomMenuListener(item);
return true;
}
});
}
}
private void setupBottomMenuListener(@NonNull MenuItem item) {
switch (item.getItemId()) {
//...
}
}
}
【问题讨论】: