android - 如何匹配来自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>
解决方案
查看此处了解如何从 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";
}
}
推荐阅读
- javascript - 如何在 antd 复选框组中单独更新复选框
- android - 尝试使用我的自定义布局时发现意外的命名空间前缀“app”
- python - 极地图:颜色困难
- javascript - 为另一个 Firestore 实例中的用户在 Firestore 中创建自定义令牌
- sql - SQL Server 合并一些列
- mysql - 如何在 MYSQL 中选择 HTML 块?
- tsql - Pivot没有按预期给出结果,如何达到预期结果?
- c# - C# 默认情况下,虚拟和本地方法是否会发生积极的内联?
- php - 如何使以下while循环工作
- c# - 为 asp-route-parameter 使用 hiddenfield-value