为了账号安全,请及时绑定邮箱和手机立即绑定

如何在活动类中实现方法

如何在活动类中实现方法

潇湘沐 2022-08-03 16:12:13
我刚刚开始学习Android Studio的Android编程,不幸的是,我有一个很大的问题,可能是一件非常简单的事情,即在主活动的布局文件中,我将startActivity()方法分配给两个按钮的属性(android:onClick=“startActivity()”)。android:onClick现在我应该在MainActivity类中,实现startActivity()方法,但是....我不知道该怎么做。我看到我应该在MainActivity中拥有:.我试过了,我正在寻找几个小时的解决方案,我已经失去了希望。特别是我可以实现例如View.OnClickListener但是方法,startActivity()不能再这样做了。如何实现此方法?public void startActivity(View v)我将 startActivity() 方法分配给了 activity_main.xml 中两个按钮的 android:onClick 属性:<Button    android:id="@+id/button"    android:onClick="startActivity()"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginStart="32dp"    android:layout_marginTop="24dp"    android:text="@string/button"    app:layout_constraintStart_toStartOf="parent"    app:layout_constraintTop_toTopOf="parent"    tools:ignore="OnClick" /><Button    android:id="@+id/button2"    android:onClick="startActivity()"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginStart="32dp"    android:layout_marginTop="16dp"    android:text="@string/button2"    app:layout_constraintStart_toStartOf="parent"    app:layout_constraintTop_toBottomOf="@+id/button"    tools:ignore="OnClick" />接下来,我应该在MainActivity类中,实现startActivity()方法,但是....我不知道该怎么做:public class MainActivity extends AppCompatActivity implements startActivity() {    Button  b1, b2;    EditText et1, et2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        b1 = findViewById(R.id.button);        b2 = findViewById(R.id.button2);        et1 = findViewById(R.id.editText);        et2 = findViewById(R.id.editText2);    }}
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

您错误地使用了属性。这是错误的:onClick


android:onClick="startActivity()"

它应该是:


android:onClick="startActivity"

在 https://developer.android.com/guide/topics/ui/controls/button#HandlingEvents 阅读更多内容


建议

应避免在 xml 中使用。请改用 。将逻辑布局和 UI 布局分开非常重要,这样在更改 xml 布局时就不需要考虑太多。使用类似如下的内容:android:onClickonClickListener


Button button = (Button) findViewById(R.id.your_button);

button.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

        // Do something here when button is clicked.

    }

});


查看完整回答
反对 回复 2022-08-03
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

正如ישו אוהב אותך9A https://developer.android.com/guide/topics/ui/controls/button#HandlingEvents


Responding to Click Events


<Button xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/button_send"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="@string/button_send"


    //onClick function/method name don't use round brackets


    android:onClick="sendMessage" />

和在您的活动中


//JAVA


/** Called when the user touches the button */

public void sendMessage(View view) {

    // Do something in response to button click

}


//Kotlin


/** Called when the user touches the button */

fun sendMessage(view: View) {

    // Do something in response to button click

}

并删除tools:ignore="OnClick"


我希望它有帮助


查看完整回答
反对 回复 2022-08-03
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

首先,改变这一点

android:onClick="startActivity()"

对此:

android:onClick="startActivity"

然后将 startActivity 方法移到 OnCreate 方法下方。它目前在OnCreate内部


查看完整回答
反对 回复 2022-08-03
  • 3 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信