【发布时间】:2017-11-11 13:03:47
【问题描述】:
我是 Android 开发新手,但我有相当多的 Swing/WPF(C#) GUI 经验。我正在尝试做的是以下内容:
我有一个BottomNavigationView,有 3 个单独的视图。每个视图都实现为一个片段,通过OnNavigationItemSelectedListener 在 MainActivity java 代码中显示/隐藏:
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.one:
findViewById(R.id.one).setVisibility(View.VISIBLE);
findViewById(R.id.two).setVisibility(View.GONE);
findViewById(R.id.threee).setVisibility(View.GONE);
return true;
// ... and so on
我的问题是两个片段的一部分接口是相同的,由一组EditText和ImageButton组成。所以我想创造一些可重用的东西,而不是加倍代码。我的选择是在片段中制作片段(但在互联网上我看到这是不可取的)或制作可重复使用的视图(https://developer.android.com/training/improving-layouts/reusing-layouts.html,https://developer.android.com/guide/topics/ui/custom-components.html)。最好的方法是什么?我想要一个带有连接的 java 代码的 xml 布局,我可以在其中收听与 EditText 和 Buttons 的交互并采取相应的行动。也许我对我的 WPF 经验有偏见,但我试图让它像一个 xaml + 代码隐藏,这可能不是在构建 Android 应用程序时解决问题的正确方法。
【问题讨论】:
-
如果您希望在 Java 代码中的相同视图中执行相同的方法,请声明静态方法以根据您的应用程序逻辑执行相同的操作,但我已经给出了如何重用视图的答案,但是如果这不是您想在我的问题中发表评论并解释我将编辑我的答案的内容!
标签: android android-fragments view bottomnavigationview