【问题标题】:Handling android onclick for multiple buttons (81 total)处理多个按钮的 android onclick(总共 81 个)
【发布时间】:2016-06-04 19:39:51
【问题描述】:

我目前正在创建一个包含 81 个按钮的 Ultimate Tic Tac Toe 应用程序。当它是常规井字游戏时,我处理它的方式是为 9 个按钮创建一个 switch 语句。我只是想知道为所有 81 个按钮创建一个开关是否仍然是处理所有按钮按下的最佳方式?

【问题讨论】:

  • 您可以在视图上使用tag 来放入信息。
  • 您是使用纯代码生成元素还是为所有人扩展一个示例 xml 布局?
  • @AliSheikhpour 我创建了这个 xml 布局

标签: java android onclicklistener android-button


【解决方案1】:

对于所有设置 onClick 同名的元素:

<LinearLayout
//blah blah
android:onClick="myClickFunction"
/>

然后在您的 Java 文件中,您将需要只有这个一键式监听器

   public void myClickFunction(View v) {
            String mytag=(String) v.getTag();
            // And do something with tag or id
       }

【讨论】:

  • 因为它们都设置了相同的名称android:onClick
  • 我收到FATAL EXCEPTION: main Process: com.thatboytitz.ultimatetictactoe, PID: 16320 java.lang.IllegalStateException: Could not find method MyClickFunction(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'button01'
  • 对不起。侦听器方法应该定义为一个简单的方法,而不是 clickListener。我已经更新了答案。
【解决方案2】:

OnClick 事件中,您拥有视图。

直接使用它

【讨论】:

  • 但在 Onclick 中我是否可以:public void OnClick(View view) { switch(view.getId()){ 用于所有 81 个按钮?
  • 您可以创建自定义视图并在创建时存储它的位置。然后在 onclick 内投射视图以获取适当的坐标。您还可以为视图设置标签。
  • 我对你在说什么感到困惑。你会怎么做?
猜你喜欢
  • 2017-09-14
  • 1970-01-01
  • 2017-10-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
相关资源
最近更新 更多