【问题标题】:How to call method with View Parameter on Android Studio如何在 Android Studio 上使用 View 参数调用方法
【发布时间】:2015-02-28 11:37:04
【问题描述】:

我想调用这个方法

public void openButton(View view) {
    Intent intent = new Intent(this, MainActivity.class);
    this.startActivity(intent);
}

从这样的简单方法

public void simple(){
    openButton();
}

但我做不到,因为openButton需要一个参数View。怎么样?

【问题讨论】:

  • openButton() 方法没有使用view 参数,将其简单地称为openButton(null) 应该可以吗?
  • 它有效!谢谢:D
  • 如果这只是为了测试目的,那么你调用的方式很好,否则你需要按照答案中提到的程序。

标签: java android methods view parameters


【解决方案1】:

你应该可以的

 button.performClick(); 

假设openButton() 是分配给buttons onClick 的方法。这意味着,在您的 xml 中的某处,您可能有一个 Buttonandroid:onClick="openButton"。然后,如果您将Button 实例化并分配给变量button,则调用ViewperformClick() 方法将调用openButton()

【讨论】:

    【解决方案2】:

    简单。只需在参数中传递视图。

    方式一:如果你是从布局文件中调用openButton()方法,那么只需通过应用onClick属性按以下方式调用方法

    <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Go to next screen"
       . . . 
       android:onClick="openButton" />
    

    方式 2: 如果您试图通过设置 OnClickListener 从按钮的 onclick 调用它,那么只需将您正在进入的视图传递给 OnClickListeneronClick(View view) 方法,如下所示:

    button.setOnClickListener(new OnClickListener(){
    
        @override
        public void onClick(View view)
        {
           openButton(view);
        }
    
    });
    

    【讨论】:

      【解决方案3】:

      嗯,对于您提供的代码,您通常使用某种onCickListener

      打开您的 XML 文件,并将 android:onClick="openButton" 添加到您要调用该方法的按钮。因此,您的按钮 XML 将如下所示:

      <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Click me!"
         . . . 
         android:onClick="openButton" />
      

      这将自动调用该方法并传入一个视图。

      另一个选项,正如 BatScream 在 cmets 中提到的那样,只是传入 null,因为无论如何您都没有使用视图。然而,这是一种不好的做法——这次它会起作用,但一般来说,你应该遵循 Android 使用的系统。只需在 XML 中使用 onClick 即可。


      如果您必须按原样使用simple,请这样做:

      public void simple(){
          openButton(null);
      }
      

      【讨论】:

      • 我知道,但我只想从方法 simple() 开始活动。怎么样?
      • @user2565280 添加了它。 BatScream 在 cmets 中所说的相同
      猜你喜欢
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多