如何在Android中显示按钮onclick的登录?

时间:2018-12-06 13:55:50

标签: android

尝试添加仅在Android Studio中运行的onClick函数。我想通过单击按钮在日志中显示文本消息,但是没有达到预期的结果。

请帮助。

activity_main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:onClick="clickFunction"
tools:context=".MainActivity">


<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="139dp"
    android:text="Button" />
   </RelativeLayout>

mainActivity.java文件

 package com.example.jewelcsebu.hellotest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {

public void clickFunction(View view){

     Log.i("Info", "Button Pressed");

}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 }
}

我刚刚使onClick函数可以运行。但这是下面的错误:

2018-12-06 19:40:12.700 1808-1808/? E/netmgr: Failed to open QEMU pipe 'qemud:network': Invalid argument
2018-12-06 19:40:19.252 1716-1745/? E/storaged: getDiskStats failed with result NOT_SUPPORTED and size 0
2018-12-06 19:40:37.061 1890-1911/system_process E/memtrack: Couldn't load memtrack module

2 个答案:

答案 0 :(得分:2)

您需要将 tools:onClick 替换为 android:onClick 而且我建议您将 android:onClick 放在Button元素内,如下所示:

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="139dp"
android:onClick="clickFunction"
android:text="Button" />

或像这样使用OnClickListener回调:

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

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        clickFunction();
    }
});

public void clickFunction(View view){

     Log.i("Info", "Button Pressed");

}

答案 1 :(得分:0)

我遇到了同样的问题,我只导入了类(import android.widget.Button;)

赞: 导入android.widget.Button;

并且我没有对log.i进行任何更改(标记:“ info”,msg:“已按下按钮!”);

对我有用