尝试添加仅在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
答案 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:“已按下按钮!”);
对我有用