按下按钮时,按钮无任何反应

时间:2018-10-30 17:11:42

标签: android android-button

我所面对的是,每当我按下按钮保存数据以检查字段是否被填充时,是否将其传递给back4app却什么也没有发生。 Android监视器/运行甚至不显示按钮被按下或Logcat。

我有一个登录活动,注册活动和主要活动。登录后,它会将您带到当前为空的主要活动,但是您需要使用导航栏将您带到该活动,并且即使字段被填充,或者按钮完全不响应。我进行了祝酒,以确保按钮可以正常工作,但不显示祝酒。

下面的代码我只是复制到注册表格中,该表格是相同的概念,填写表格测试中是否有内容,如果没有,则会显示消息,然后它将数据发送到back4app。但是此问题中的按钮不起作用。

这是按钮命令

package com.example.back4app.userregistrationexample.Classes;

import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.view.View.OnClickListener;
import com.example.back4app.userregistrationexample.R;
import com.parse.Parse;
import com.parse.ParseObject;
import com.parse.ParseUser;

public class Purchases extends AppCompatActivity {

private EditText establishmentView;
private EditText particularsView;
private EditText amountView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.app_bar_purchases);
    establishmentView = (EditText) findViewById(R.id.Edt_Establishment);
    particularsView = (EditText) findViewById(R.id.Edt_Particular);
    amountView = (EditText) findViewById(R.id.Edt_purchasesnumber);

    final Button save = (Button) findViewById(R.id.btn_purchasessave);
    save.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            boolean validationError = false;

            StringBuilder validationErrorMessage = new StringBuilder("Please, insert ");
            if (isEmpty(establishmentView)) {
                validationError = true;
                validationErrorMessage.append("an Establisment");
            }
            if (isEmpty(particularsView)) {
                if (validationError) {
                    validationErrorMessage.append(" and ");
                }
                validationError = true;
                validationErrorMessage.append("a Particular");
            }
            if (isEmpty(amountView)) {
                if (validationError) {
                    validationErrorMessage.append(" and ");
                }
                validationError = true;
                validationErrorMessage.append("a Amount");
            }
            validationErrorMessage.append(".");

            if (validationError) {
                Toast.makeText(Purchases.this, validationErrorMessage.toString(), Toast.LENGTH_LONG).show();
                return;
            }
            final ProgressDialog dlg = new ProgressDialog(Purchases.this);
            dlg.setTitle("Please, wait a moment.");
            dlg.setMessage("Signing up...");
            dlg.show();

            Toast.makeText(getApplicationContext(),"Data Saved",Toast.LENGTH_SHORT).show();



        }
    });
}

private boolean isEmpty(EditText text) {
    if (text.getText().toString().trim().length() > 0) {
        return false;
    } else {
        return true;
    }
}

private boolean isMatching(EditText text1, EditText text2){
    if(text1.getText().toString().equals(text2.getText().toString())){
        return true;
    }
    else{
        return false;
    }
}

private void alertDisplayer(String title,String message){
    AlertDialog.Builder builder = new AlertDialog.Builder(Purchases.this)
            .setTitle(title)
            .setMessage(message)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                    Intent intent = new Intent(Purchases.this, MainActivity.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
                    ParseUser.logOut();
                }
            });

    AlertDialog ok = builder.create();
    ok.show();
}
}

编辑:这是app_bar_purchases.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">

<TextView
    android:id="@+id/txt_puchasesbal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="22dp"
    android:text="Balance" />

<EditText
    android:id="@+id/Edt_Establishment"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="70dp"
    android:ems="10"
    android:hint="Establishment"
    android:inputType="textPersonName" />

<EditText
    android:id="@+id/Edt_Particular"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="130dp"
    android:ems="10"
    android:hint="Particulars"
    android:inputType="textPersonName" />

<EditText
    android:id="@+id/Edt_purchasesnumber"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="197dp"
    android:ems="10"
    android:hint="Amount"
    android:inputType="number" />

<Button
    android:id="@+id/btn_purchasessave"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="178dp"
    android:text="Save" />

</RelativeLayout>

Heres what happen,当我尝试对其进行调试并将布尔值置于boolean时,同样的事情也会发生,当我将“ break in”按钮保存时,它不会在Debug上显示任何内容,没有错误或任何东西

编辑,我粘贴了正确的xml文件

编辑是否具有RelativeLayout会使按钮不响应?

编辑,我粘贴了整个Java类

编辑,我还尝试删除了onClick上的所有其他内容,除了 Toast.makeText(getApplicationContext(),"Data Saved",Toast.LENGTH_SHORT).show();只是为了查看按钮本身是否起作用,但它甚至没有显示吐司面包

2 个答案:

答案 0 :(得分:0)

我参考了一个SO问题, 尝试使用此:

 save.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
         Toast.makeText(getBaseContext(), "clicked", Toast.LENGTH_LONG).show();

    }
});

并导入

import android.view.View.OnClickListener;

编辑

投射大多数android视图现在是多余的,但这可能是问题,尝试像这样投射按钮:

final Button save = (Button) findViewById(R.id.btn_purchasessave);

并尝试您的代码。

编辑2

尝试像这样使用 save.setOnClickListener(this)

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private EditText establishmentView;
private EditText particularsView;
private EditText amountView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    establishmentView = (EditText) findViewById(R.id.Edt_Establishment);
    particularsView = (EditText) findViewById(R.id.Edt_Particular);
    amountView = (EditText) findViewById(R.id.Edt_purchasesnumber);

    final Button save = (Button) findViewById(R.id.btn_purchasessave);
    save.setOnClickListener(this);
}


@Override
public void onClick(View v) {

      //do things here

}

答案 1 :(得分:0)

请在xml文件btn_addbalance中检查您的按钮ID

然后在Java文件btn_purchasessave中检查您的ID

请在代码下方更正此检查

您的行

map(lambda x: sum(*x), [(1, 2), (3, 4)])

替换为

final Button save = findViewById(R.id.btn_purchasessave);

它将为您提供帮助