【问题标题】:How to handle click from xml to Activity如何处理从 xml 到 Activity 的点击
【发布时间】:2020-01-25 06:33:44
【问题描述】:

我是 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" />

【问题讨论】:

  • 也显示你的xml代码
  • 上面是图片的形式。
  • 你能给我看看代码xml代码吗?
  • 我在上面加了

标签: java android android-activity daemon


【解决方案1】:

您定义的上述类型在 java 中不支持。您可以这样做。

public String tag = "this";
public String msg = "clickbtn:this is a message!";


Log.i(tag,msg);

【讨论】:

    【解决方案2】:

    从您的代码中删除 tag:msg:

    【讨论】:

    • 它不是文字而是建议兄弟这不是错误@ajay
    • @InsaneCat 我知道,但在这里,他是个新手,不知道建议以及如何处理它
    • 但是你提到这是错误但是这不是他写的代码。
    • 我已经删除了那个提及
    • 好好享受编码:) @AjayKS
    【解决方案3】:

    替换

    Log.i(tag:"this", msg:"clickbtn: This is a message");
    

    Log.i("this","clickbtn:this is a message!");
    

    【讨论】:

      【解决方案4】:

      用此代码替换您的代码

      替换

      Log.i(tag:"this", msg:"clickbtn: This is a message");
      

      Log.i("This","This is a message");
      

      低于你的完整sn-p代码

      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

      希望现在对您有所帮助。

      【讨论】:

      • 除了我的 XML 代码之外,我还必须添加你的 XML 代码还是用你的代码替换我的代码?
      • 现在我只是举个例子...等一下我会修改你的代码。但是您可以像这样以正确的方式获得点击。而不是在 XML 中使用 android:onClick="clickbtn"
      • 非常感谢,但由于我刚刚开始学习,我无法弄清楚大部分 java 文件,但它可以正常工作。 :) 再次感谢!
      • 现在可以用了吗?再次检查更新的答案并查看下面出现的点击文本。
      【解决方案5】:

      您从屏幕截图中获取了代码。问题在于,当您使用文字调用方法时,Android Studio 添加了显示参数名称的信息。

      此信息不是代码的一部分,Android Studio 只是添加它以通知您有关参数并使代码更具可读性。

      实际代码应该是:

      Log.i("this", "clickbtn: this is a message");
      

      代替:

      Log.i(tag:"this", msg:"clickbtn: this is a message");
      

      如果您使用它,Android Studio 将向您显示 tag:message:,即使它不是您代码的一部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-30
        • 1970-01-01
        • 1970-01-01
        • 2014-03-12
        • 2023-03-24
        相关资源
        最近更新 更多