如何在 Android Studio 上使用视图参数调用方法

How to call method with View Parameter on Android Studio

我想调用这个方法

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

像这样的简单方法

public void simple(){
    openButton();
}

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

嗯,对于您提供的代码,您通常使用某种 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 在评论中提到的那样,另一种选择是直接传入 null,因为您无论如何都不会使用该视图。但是,这是不好的做法 - 这次它会起作用,但一般来说,您应该遵循 Android 使用的系统。只需在 XML 中使用 onClick


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

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

你应该可以做到

 button.performClick(); 

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

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

方式 1: 如果您从布局文件中调用 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 调用它,那么只需传递您在 OnClickListener 中获得的视图 onClick(View view)方法如下:

button.setOnClickListener(new OnClickListener(){

    @override
    public void onClick(View view)
    {
       openButton(view);
    }

});