【问题标题】:Android-Stuck with Comparison of two viewsAndroid-Stuck 与两个视图的比较
【发布时间】:2013-03-25 10:13:49
【问题描述】:

我有两组按钮,在我的android应用程序中,每组都有三个按钮和三个活动,例如活动A,活动B和活动C。

A组

Button 1

Button 2

Button 3

B组

Button 5 

Button 6

Button 7

如果我点击 Button 1 然后 Button 5 ,必须打开 Activity A

如果我点击 Button 2 然后 Button 6 ,必须打开 Activity B

如果我点击 Button 3 然后 Button 7 ,必须打开 Activity C 。

如何做到这一点?

【问题讨论】:

  • 你试过什么?你可以发布一些代码
  • 嗨拉克什。我的回答对你有用吗?如果有,如果您能接受答案,我将不胜感激
  • 对不起!这不是我要找的……在我一个接一个地单击两个按钮后,我需要转到一个意图:(例如,如果我只单击按钮 1,则不能执行该操作。如果我单击按钮 1 ,然后单击按钮 5 。那么只有操作必须完成......

标签: java android


【解决方案1】:

这是一个例子:

<LinearLayout 
        android:id="@+id/group_A"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <Button 
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="startActivityA"/>
        <Button 
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="startActivityB"/>
        <Button 
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="startActivityC"/>
    </LinearLayout>

    <LinearLayout 
        android:id="@+id/group_B"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <Button 
            android:id="@+id/button5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="startActivityA"/>
        <Button 
            android:id="@+id/button6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="startActivityB"/>
        <Button 
            android:id="@+id/button7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="startActivityC"/>
    </LinearLayout>

在您想要开始您的活动 A、B 和 C 的活动中,您需要定义您的方法,例如

public void startActivityA(View view) {
    Intent i = new Intent(this, ActivityA.class);
    startActivity(i);       
}

【讨论】:

  • 我建议不要使用 onClick 属性。混合代码和布局总是一个坏主意......但除此之外,答案是正确的
  • 嗨沃伦,我很好奇为什么这是一个坏主意。在这篇文章中,在 xml 中使用的 onClick 被选为 onClick 实现中最佳实践的最佳示例:stackoverflow.com/questions/6372104/…
  • 这种方法的投票数最多并不意味着它是最好的。正如我已经说过的:在我看来,混合布局和逻辑是一个坏主意。
  • 不想为这种方法辩护。我真的很想知道它可能会出现什么问题,因为我在我现在正在构建的应用程序中经常使用它。
  • 可能的问题:您想重命名方法(必须至少在两个地方更改它),其他人需要更改布局并且可能太懒了:删除视觉设计器中的按钮并在新的地方创建一个新的。像声纳这样的代码分析工具可能会认为您的方法从未在任何地方调用过。如果在某处附加了单击侦听器,则除了您看不到(在您的片段/活动中)的方法之外。您的 onClick 方法必须在活动中,因此您的活动与布局的绑定更紧密(而片段应该处理布局......)最后一个是最糟糕的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多