【问题标题】:onClick event not working on Android Blank ActivityonClick 事件不适用于 Android 空白活动
【发布时间】:2019-03-03 22:10:43
【问题描述】:

我在 Android Studio 中有一个空白 Activity,我执行了以下说明,但在我运行程序时它不起作用。

  1. 选择按钮并在右侧查找属性/属性面板。
  2. 将名称 onClick 分配给 Button 的 android:onClick 属性。

  3. 在 Main_Activity 文件中实现以下方法:

public void onClick (View view) { Toast.makeText(this, "Button 1 pressed", Toast.LENGTH_LONG).show(); } 当我尝试运行它时,我收到如下错误:

  • 期待成员声明
  • 函数声明必须有名字

【问题讨论】:

  • 这些是我不断遇到的错误,我觉得任务遗漏了很多。我对此很陌生,我希望这个问题是有道理的。 “期待一个成员声明”“函数声明必须有一个名字”等等......
  • @Williams,我需要 main_activity 文件的完整代码。
  • 它与空白活动中的代码相同。很抱歉我现在没有把它拉起来:(我一回到家就会这样做,但我记得的主要活动只有通用课程代码。到目前为止,我的教授在这方面没有帮助,实际上只是只给出了这些说明。但我一回到家就会在这里添加。谢谢
  • 我在网上找到了一张长得像的图。本页第一张截图:javaworld.com/article/3104621/mobile-java/…
  • @williams,检查了网址。你应该添加implement View.SetOnClickListener

标签: android android-studio onclick onclicklistener main-activity


【解决方案1】:

1)在你的Activity的Xml文件中设置具有指定函数名的按钮的onClick属性 android:onClick:"onClick"

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:onClick="onButtonClick"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

2)在此之后,将相同的函数放入您的活动中,但使用这样的参数 public void onClick(查看视图)

public void onButtonClick(View view){
   Toast.makeText(this, "Button 1 pressed", Toast.LENGTH_LONG).show();
}

3) 当你点击按钮时,提供的方法会被调用

注意:函数名可以是除访问说明符之外的任何内容,返回类型和参数必须相同。

【讨论】:

  • 谢谢!!那解决了我的问题!你太棒了!!
  • 这是我的荣幸
  • @A.Williams,提醒一下您是新用户。如果它帮助并解决了您的问题,您可以随时投票并接受答案。 :)
  • 我做到了!谢谢 :) 它说它不会显示,但它会被记录下来。 :)
【解决方案2】:
Button yourButton = (Button)findViewById(R.id.your_button_id)  
yourButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(this, "Button 1 pressed", Toast.LENGTH_LONG).show();
        }
    });

请用 Java 试试这个。

【讨论】:

    【解决方案3】:

    使用 XML 属性 android:onClick 触发点击事件。只需两步:

    1.将android:onClick 分配给这样的按钮:

     <Button 
        android:id="@+id/button" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Click me!" 
        android:onClick="btnClicked" />
    

    2 在活动中定义一个名为 btnClicked 的函数,如下所示:

       public void btnClicked(View v) { 
                Log.d("MR.bool", "Button1 was clicked "); 
       }
    

    注意:不要和setOnClickListener混用,只能上面两步。

    【讨论】:

      最近更新 更多