Android 为什么我的按钮没有点击?

Android 为什么我的按钮没有点击?,android,Android,我尝试过寻找其他答案,但我的努力都是徒劳的,我似乎做的每件事都是对的,甚至看过一些关于如何去做的教程。出于某种原因,当我运行模拟器时,我的按钮根本不起作用。没有回应。我起初认为可能是密码错误,但随后错误信息也没有显示出来。我做错了什么 import android.content.Intent; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import an

我尝试过寻找其他答案,但我的努力都是徒劳的,我似乎做的每件事都是对的,甚至看过一些关于如何去做的教程。出于某种原因,当我运行模拟器时,我的按钮根本不起作用。没有回应。我起初认为可能是密码错误,但随后错误信息也没有显示出来。我做错了什么

import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class LoginActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        final EditText inEmail = (EditText) findViewById(R.id.inEmail);
        final EditText inPassword = (EditText) findViewById(R.id.inPassword);
        Button bLogin = (Button) findViewById(R.id.bLogin);
        final TextView tCaption = (TextView) findViewById(R.id.tCaption);
        TextView tHyperLink = (TextView) findViewById(R.id.tHyperlink);
        Log.d("SOS", "onCreate: Here");

        tHyperLink.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                Intent registerIntent = new Intent(LoginActivity.this,Register.class);
                startActivity(registerIntent);
            }
        });

        bLogin.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                Log.d("SOS", "Reached");
                if(inEmail.getText().toString().equals("m") && inPassword.getText().toString().trim().equals("o")){
                    Intent Main = new Intent(LoginActivity.this, MainActivity.class);
                    startActivity(Main);
                } else {
                    AlertDialog.Builder msg = new AlertDialog.Builder(LoginActivity.this);
                    msg.setMessage("Login Failed").setNegativeButton("Retry", null).create().show();
                }
            }
        });
    }

}
下面是相应的xml文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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"
    android:background="@color/colorPrimary"
    tools:context="com.bludevs.twotor.LoginActivity">

    <EditText
        android:id="@+id/inEmail"
        android:layout_width="330dp"
        android:layout_height="41dp"
        android:ems="10"
        android:hint="Email"
        android:inputType="textEmailAddress"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginTop="26dp"
        app:layout_constraintTop_toBottomOf="@+id/imageView" />

    <EditText
        android:id="@+id/inPassword"
        android:layout_width="330dp"
        android:layout_height="41dp"
        android:ems="10"
        android:inputType="textPassword"
        android:hint="Password"
        android:layout_marginTop="18dp"
        app:layout_constraintTop_toBottomOf="@+id/inEmail"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="330dp"
        android:layout_height="101dp"
        app:srcCompat="@mipmap/twotor_logo"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent" />

    <Button
        android:id="@+id/bLogin"
        android:layout_width="195dp"
        android:layout_height="55dp"
        android:text="Login"
        android:background="@android:color/background_dark"
        android:textColor="@color/colorAccent"
        android:layout_marginTop="49dp"
        app:layout_constraintTop_toBottomOf="@+id/inPassword"
        app:layout_constraintBottom_toBottomOf="parent"
        android:layout_marginBottom="8dp"
        android:clickable="true"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintHorizontal_bias="0.503"
        app:layout_constraintVertical_bias="0.0" />

    <TextView
        android:id="@+id/tCaption"
        android:layout_width="120dp"
        android:layout_height="22dp"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:text="Not a member yet?"
        android:textColor="@android:color/background_light"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/bLogin"
        app:layout_constraintVertical_bias="0.781"
        app:layout_constraintHorizontal_bias="0.231" />

    <TextView
        android:id="@+id/tHyperlink"
        android:layout_width="120dp"
        android:layout_height="22dp"
        android:layout_marginLeft="8dp"
        android:textColor="@color/colorAccent"
        android:text= "@string/Register"
        android:clickable="true"
        app:layout_constraintLeft_toRightOf="@+id/tCaption"
        android:layout_marginTop="8dp"
        app:layout_constraintTop_toBottomOf="@+id/bLogin"
        app:layout_constraintBottom_toBottomOf="parent"
        android:layout_marginBottom="8dp"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintVertical_bias="0.778" />
</android.support.constraint.ConstraintLayout>

将按钮单击代码替换为:

  if (inEmail.getText().toString().trim().equals("m") && inPassword.getText().toString().trim()`enter code here`.equals("o")) {
            Intent Main = new Intent(LoginActivity.this, MainActivity.class);
            startActivity(Main);
        } else {
            AlertDialog.Builder msg = new AlertDialog.Builder(LoginActivity.this);
            msg.setMessage("Login Failed").setNegativeButton("Retry", null).create().show();
        }
必须使用toString()方法将EditText值转换为字符串。
而且,如果您没有在manifest类中注册应用程序,您还可以使用trim()方法删除额外的空间。

。 那就去你的舱单课吧。并相应地添加这些行

      <activity
        android:name="YourActivityName"
        />

同时将
inEmail.getText()
更改为
inEmail.getText().toString()

我的清单文件

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.bludevs.twotor">

        <!-- To auto-complete the email text field in the login form with the user's emails -->
        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
        <uses-permission android:name="android.permission.READ_PROFILE" />
        <uses-permission android:name="android.permission.READ_CONTACTS" />

        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name=".LoginActivity" />
            <activity android:name=".Register">
            </activity>
        </application>

    </manifest>


共享您的xml文件Yashy您的代码似乎没有bug,您是否在清单类中注册了您的活动?不,我没有。我该怎么做呢。还有,为什么会导致按钮不点击?我在这里发布。粘贴你活动的完整代码。我刚刚调试了你的应用程序,找到了相同的答案。我认为这应该是可以接受的答案。您没有将edittext中的值转换为字符串变量,这就是您无法将值与“m”进行比较的原因。但这似乎仍然不起作用,我确实尝试过。这也意味着它应该进入'else'块,而不是。我的活动似乎已注册。我们是否使用“Intent Main”?它应该是一个关键词。请使用意向i_Main。答案已随更改而更新。
-UI related event handlers are better inside OnCreate.
-If you need otherwise, you should take views and context into  
consideration rather than using a void function
-Following should help.
public class LoginActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        final EditText inEmail = (EditText) findViewById(R.id.inEmail);
        final EditText inPassword = (EditText) findViewById(R.id.inPassword);
        Button bLogin = (Button) findViewById(R.id.bLogin);
        final TextView tCaption = (TextView) findViewById(R.id.tCaption);
        TextView tHyperLink = (TextView) findViewById(R.id.tHyperlink);

        tHyperLink.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                Intent registerIntent = new Intent(LoginActivity.this,Register.class);
                startActivity(registerIntent);
            }
        });

        bLogin.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                if(inEmail.getText().equals("m") && inPassword.getText().equals("o")){
                    Intent i_Main = new Intent(LoginActivity.this, MainActivity.class);
                    startActivity(i_Main);
                } else {
                    AlertDialog.Builder msg = new AlertDialog.Builder(LoginActivity.this);
                    msg.setMessage("Login Failed").setNegativeButton("Retry", null).create().show();
                }
            }
        });
    }