【问题标题】:Java / Android Studio : How do I make a method that refer to the button if it is outside the button method? [duplicate]Java / Android Studio:如果按钮方法在按钮方法之外,如何创建引用按钮的方法? [复制]
【发布时间】:2020-12-26 22:33:49
【问题描述】:

我是 Java 新手,正在学习 Android Studio。我正在尝试在几个功能中访问我的按钮。我当前的代码是:

public static void player1() {
    v.setText("X"); //not working why? how do i do it? #confused

}
public void click (View v) {

}

请记住,我想访问所有按钮。所以不是一个特定的按钮,这就是我写 v.setText() 的原因。我正在尝试制作井字游戏。

【问题讨论】:

    标签: java android android-studio android-button


    【解决方案1】:

    要访问任何视图(Button、TextView、EditText...),首先声明一个全局变量:

    Button myButton;
    

    然后,在 onCreate() 方法中,将此 myButton 对象绑定到 XML 布局中的按钮:

    myButton = findViewById(R.id.myButton);
    

    完成后,您可以在任何函数中使用 myButton 对象简单地访问您的按钮,例如:

    public function myFunc1(){
       myButton.setText("Something");
    }
    
    public function myFunc2(){
       myButton.DO_SMOETHING
    }
    

    【讨论】:

      【解决方案2】:

      在方法中访问对象的一种方法是将它们作为参数提供,例如

      public static void myFunction(MyClass myObject) {
          myObject.setText("welcome to stackoverflow");
      }
      

      然后,当您调用该方法时,您必须提供参数。

      MyClass myObject = new MyClass();
      myFunction(myObject);
      

      当然,在这个例子中,MyClass 必须提供一个方法setText(String)。如果我假设正确,您正在尝试在Swing View-Object 上使用setText-方法,对吗?这是行不通的,因为 View-Class 不提供setText()-方法。

      我对您的建议:遵循某种教程以了解有关 Java 基础知识的更多信息。我也建议学习 Swings 的继任者 JavaFX。

      祝您编码顺利。 :)

      【讨论】:

      • `public static void player1 (View v) { ((Button)v).setText("X"); v.setEnabled(false); } public static void player2(View v) { ((Button)v).setText("O"); v.setEnabled(false); } 公共无效点击 (查看 v) { player1(v);播放器2(v); }' 谢谢!我“解决了它”,我现在迈出了新的一步。我用按钮投了 v 因为他们不能给 setText();东西
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      • 2014-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多