如何处理从 xml 到 Activity 的点击
How to handle click from xml to Activity
我是 android 的新手,正在学习本教程:https://www.youtube.com/watch?v=qK0QNA0sMGc&t=2710s
(这是印地语)
在我的MainActivity.java:
当我尝试 运行 应用程序时,它给出错误信息:
9 errors found
1 warning found
2 typos found
让我在
末尾加分号
Log.i(tag:"this", msg:"clickbtn: This is a message");
我已经放下了
这是我的activity_main.xml:
谁能告诉我错误是什么?
XML代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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:context=".MainActivity">
<TextView
android:id="@+id/topText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:includeFontPadding="false"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:text="Welcome to Shivam Travels"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.504"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:ems="10"
android:hint="Enter your username"
android:inputType="textPersonName"
app:layout_constraintStart_toStartOf="@+id/topText"
app:layout_constraintTop_toBottomOf="@+id/topText" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:ems="10"
android:hint="Enter your password"
android:inputType="textPassword"
app:layout_constraintStart_toStartOf="@+id/editText"
app:layout_constraintTop_toBottomOf="@+id/editText" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:onClick="clickbtn"
android:text="Sign In"
app:layout_constraintStart_toStartOf="@+id/checkBox"
app:layout_constraintTop_toBottomOf="@+id/checkBox" />
<CheckBox
android:id="@+id/checkBox"
android:layout_width="176dp"
android:layout_height="65dp"
android:layout_marginTop="32dp"
android:text="Remember me!"
app:layout_constraintStart_toStartOf="@+id/editText2"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
从代码中删除 tag: 和 msg:
用这个代码替换你的代码
替换
Log.i(tag:"this", msg:"clickbtn: This is a message");
和
Log.i("This","This is a message");
下面是您的完整代码片段
JAVA 文件
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
public class MainTestActivity extends Activity {
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
setContentView(R.layout.activity_main);
}
public void clickbtn(View view){
Log.i("This","This is a message");
Toast.makeText(context, "Button Clicked", Toast.LENGTH_SHORT).show();
}
}
XML 文件
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:context=".MainActivity">
<TextView
android:id="@+id/topText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:includeFontPadding="false"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:text="Welcome to Shivam Travels"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.504"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:ems="10"
android:hint="Enter your username"
android:inputType="textPersonName"
app:layout_constraintStart_toStartOf="@+id/topText"
app:layout_constraintTop_toBottomOf="@+id/topText" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:ems="10"
android:hint="Enter your password"
android:inputType="textPassword"
app:layout_constraintStart_toStartOf="@+id/editText"
app:layout_constraintTop_toBottomOf="@+id/editText" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:onClick="clickbtn"
android:text="Sign In"
app:layout_constraintStart_toStartOf="@+id/checkBox"
app:layout_constraintTop_toBottomOf="@+id/checkBox" />
<CheckBox
android:id="@+id/checkBox"
android:layout_width="176dp"
android:layout_height="65dp"
android:layout_marginTop="32dp"
android:text="Remember me!"
app:layout_constraintStart_toStartOf="@+id/editText2"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
</androidx.constraintlayout.widget.ConstraintLayout>
更多详情:solution
希望现在对您有所帮助。
你定义了上面不支持的类型 java.You 可以这样做。
public String tag = "this";
public String msg = "clickbtn:this is a message!";
Log.i(tag,msg);
替换
Log.i(tag:"this", msg:"clickbtn: This is a message");
和
Log.i("this","clickbtn:this is a message!");
您从屏幕截图中获取了代码。问题是 Android studio 添加了在您使用文字调用方法时显示参数名称的信息。
此信息不是代码的一部分,AndroidStudio 只是添加它以通知您参数并使代码更具可读性。
实际代码应该是:
Log.i("this", "clickbtn: this is a message");
而不是:
Log.i(tag:"this", msg:"clickbtn: this is a message");
如果您使用它,Android Studio 会向您显示 tag:
和 message:
,即使它们不是您代码的一部分。
我是 android 的新手,正在学习本教程:https://www.youtube.com/watch?v=qK0QNA0sMGc&t=2710s (这是印地语)
在我的MainActivity.java:
当我尝试 运行 应用程序时,它给出错误信息:
9 errors found
1 warning found
2 typos found
让我在
末尾加分号
Log.i(tag:"this", msg:"clickbtn: This is a message");
我已经放下了
这是我的activity_main.xml:
谁能告诉我错误是什么?
XML代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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:context=".MainActivity">
<TextView
android:id="@+id/topText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:includeFontPadding="false"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:text="Welcome to Shivam Travels"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.504"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:ems="10"
android:hint="Enter your username"
android:inputType="textPersonName"
app:layout_constraintStart_toStartOf="@+id/topText"
app:layout_constraintTop_toBottomOf="@+id/topText" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:ems="10"
android:hint="Enter your password"
android:inputType="textPassword"
app:layout_constraintStart_toStartOf="@+id/editText"
app:layout_constraintTop_toBottomOf="@+id/editText" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:onClick="clickbtn"
android:text="Sign In"
app:layout_constraintStart_toStartOf="@+id/checkBox"
app:layout_constraintTop_toBottomOf="@+id/checkBox" />
<CheckBox
android:id="@+id/checkBox"
android:layout_width="176dp"
android:layout_height="65dp"
android:layout_marginTop="32dp"
android:text="Remember me!"
app:layout_constraintStart_toStartOf="@+id/editText2"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
从代码中删除 tag: 和 msg:
用这个代码替换你的代码
替换
Log.i(tag:"this", msg:"clickbtn: This is a message");
和
Log.i("This","This is a message");
下面是您的完整代码片段
JAVA 文件
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
public class MainTestActivity extends Activity {
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
setContentView(R.layout.activity_main);
}
public void clickbtn(View view){
Log.i("This","This is a message");
Toast.makeText(context, "Button Clicked", Toast.LENGTH_SHORT).show();
}
}
XML 文件
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:context=".MainActivity">
<TextView
android:id="@+id/topText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:includeFontPadding="false"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:text="Welcome to Shivam Travels"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.504"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:ems="10"
android:hint="Enter your username"
android:inputType="textPersonName"
app:layout_constraintStart_toStartOf="@+id/topText"
app:layout_constraintTop_toBottomOf="@+id/topText" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:ems="10"
android:hint="Enter your password"
android:inputType="textPassword"
app:layout_constraintStart_toStartOf="@+id/editText"
app:layout_constraintTop_toBottomOf="@+id/editText" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:onClick="clickbtn"
android:text="Sign In"
app:layout_constraintStart_toStartOf="@+id/checkBox"
app:layout_constraintTop_toBottomOf="@+id/checkBox" />
<CheckBox
android:id="@+id/checkBox"
android:layout_width="176dp"
android:layout_height="65dp"
android:layout_marginTop="32dp"
android:text="Remember me!"
app:layout_constraintStart_toStartOf="@+id/editText2"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
</androidx.constraintlayout.widget.ConstraintLayout>
希望现在对您有所帮助。
你定义了上面不支持的类型 java.You 可以这样做。
public String tag = "this";
public String msg = "clickbtn:this is a message!";
Log.i(tag,msg);
替换
Log.i(tag:"this", msg:"clickbtn: This is a message");
和
Log.i("this","clickbtn:this is a message!");
您从屏幕截图中获取了代码。问题是 Android studio 添加了在您使用文字调用方法时显示参数名称的信息。
此信息不是代码的一部分,AndroidStudio 只是添加它以通知您参数并使代码更具可读性。
实际代码应该是:
Log.i("this", "clickbtn: this is a message");
而不是:
Log.i(tag:"this", msg:"clickbtn: this is a message");
如果您使用它,Android Studio 会向您显示 tag:
和 message:
,即使它们不是您代码的一部分。