【问题标题】:Android Studio Single activity acting as manyAndroid Studio Single Activity 充当多个
【发布时间】:2018-12-18 23:33:06
【问题描述】:

我到处寻找,但似乎无法找到我要找的东西。我有一个带有多个按钮的活动,每个按钮都会打开一个具有相同 recyclerview 布局但数据不同的新活动。我想知道是否可以使用一个活动和布局而不是多个?这样,我只需在单击按钮时管理一个,而不是有 10 多个活动(每个按钮一个),只需将必要的列表数据传递给它。

我相信您可以为每个按钮设置意图以调用相同的活动,但使用 1-10 等整数,在活动中它获取值并决定应该显示哪个列表?如果有人想到如何做到这一点或更简单的方法,我将不胜感激!

【问题讨论】:

  • 为什么不直接更新当前的 RecyclerView?只需重置内容并添加新内容。

标签: android android-studio arraylist android-recyclerview android-button


【解决方案1】:

是的,有多种方法可以做到这一点。

  1. 您可以在同一个活动中使用多个片段。然后在每个按钮单击时添加/删除片段。
  2. 您的活动中可以有多个布局。假设您有两个按钮,并且您有三个布局layout1layout2layout3,依次一个接一个。因此,如果最初,layout1 是可见的,而其余的则使用 layout.setVisiblity(View.GONE) 消失,如果您单击 button1,则您可以执行 layout1.setVisiblity(View.GONE); layout3.setVisiblity(View.GONE); layout2.setVisiblity(View.VISIBLE),反之亦然按下 button2

【讨论】:

    【解决方案2】:

    按钮打开的所有活动都是相似的吗?如果是这样,您只能处理布局元素的更改并指定条件。

    例如,如果您单击一个按钮,而不是更改整个内容,您只需进入按钮并使用btn.setText("...") 更改其文本。您可以在该按钮的 onClickListener 中定义不同的条件语句。 可能是这样的:

    if(btn.getText().equals("a certain text that you set to the button")){
        doSomething();
    else if(btn.getText().equals("another option")){
        doSomethingElse();
    

    按照这个逻辑,您可以不断更新布局中的元素,您的代码将根据这些元素中存储的内容决定要做什么。

    我想到的第二个选项是创建不同的 xml 布局文件并根据您所处的流程阶段简单地将 MainActivity 的布局更改为适当的布局。

    希望对你有帮助,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      相关资源
      最近更新 更多