首页 > 解决方案 > 如何匹配来自editText的字符串和firebase数据库中的字符串并返回匹配或不匹配?

问题描述

我是初学者,正在做一个简单的项目,我想从编辑文本中获取用户输入并将其与 firebase 数据库中的字符串进行比较,如果它们相同,则返回匹配的字符串,如果不是,则返回数据库中不可用,我不知道代码但我在这里我走了多远,需要帮助

这是我的代码

public void buttonClicked(View view) {
    LayoutInflater inflater = getLayoutInflater();
    View alertTextMuamala = inflater.inflate(R.layout.muamala_dialog, null);
    final EditText movieMuamala = alertTextMuamala.findViewById(R.id.movie_muamala);






    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setTitle("Welcome!"); // this will dplay title

    //view dialog_muamala in alert

    alert.setView(alertTextMuamala);

    //this will prevent dialog cancel from back button

    alert.setCancelable(false);

    //this will set a cancel button

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(getBaseContext(), "Canceld!", Toast.LENGTH_LONG).show();
        }
    });

    alert.setPositiveButton("Send", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // to take user input as string

            String MovieMuamala = movieMuamala.getText().toString().trim();

            if(TextUtils.isEmpty(MovieMuamala)) {
                Toast.makeText(getBaseContext(), "Tafadhali Paste SMS ya Malipo!", Toast.LENGTH_LONG).show();
                return ;
            } else {
                Toast.makeText(getBaseContext(), "Muamala Umetumwa", Toast.LENGTH_LONG).show();
            }

        }
    });

    AlertDialog dialog = alert.create();
    dialog.show();


}

在 xml 上

<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">


<TextView
    android:id="@+id/dialog_info"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginBottom="8dp"
    android:fontFamily="serif-monospace"
    android:paddingLeft="8dp"
    android:text="@string/dilog"
    app:layout_constraintBottom_toTopOf="@+id/movie_muamala"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="350dp"
    android:layout_height="wrap_content"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/dialog_info"
    app:layout_constraintTop_toTopOf="parent">

</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputEditText
    android:id="@+id/movie_muamala"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginEnd="8dp"
    android:hint="Muamala:"
    android:fontFamily="sans-serif"
    android:textColorHint="#AEB9F3"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="@+id/dialog_info"
    app:layout_constraintTop_toBottomOf="@+id/dialog_info" />

</androidx.constraintlayout.widget.ConstraintLayout>

标签: android

解决方案


查看此处了解如何从 Firebase 数据库获取字符串。将该值分配给字符串。例如String firebaseString = <retrieved string>;
并将该字符串传递给这样的方法compare(firebaseString);

你可以得到返回的字符串,因为String returnedstring = compare(firebaseString);returnedstring得到字符串匹配在数据库中不可用

现在用这个方法

public String compare(String firebase){
  String localString = movie_muamala.getText().toString();
  if(localString.equalsIgnoreCase(firebase)){
   return "String matched";
  }else{
   return "not available in database";
  }
}

推荐阅读