【发布时间】:2020-03-23 11:31:14
【问题描述】:
当从可搜索的微调器中选择项目(医院名称)时,我想从 FireBase 检索特定的医院联系电话。在这里,我想在选择特定的 HosName 时检索 HosCno。 当从可搜索的微调器中选择项目(医院名称)时,我想从 FireBase 检索特定的医院联系号码。在这里,我想在选择特定的 HosName 时检索 HosCno。
package com.varad_industries.helpinghands;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.toptoche.searchablespinnerlibrary.SearchableSpinner;
import com.varad_industries.helpinghands.Interface.IFirebaseLoadDone;
import com.varad_industries.helpinghands.Model.Member;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements IFirebaseLoadDone {
SearchableSpinner searchableSpinner;
DatabaseReference reff;
IFirebaseLoadDone iFirebaseLoadDone;
List<Member> members;
TextView hcontact;
BottomSheetDialog bottomSheetDialog;
boolean isFirstTimeClick = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button ahos = findViewById(R.id.button);
ahos.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"Loading...",Toast.LENGTH_SHORT).show();
Intent i = new Intent(getApplicationContext(), addhos.class);
startActivity(i);
}
});
//code for case spinner
Spinner spinner = findViewById(R.id.spinner); //s w 398dp
ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(this,R.array.cases,android.R.layout.simple_spinner_item);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(arrayAdapter);
//end of code for spinner
searchableSpinner = (SearchableSpinner)findViewById(R.id.searchable_spinner);
bottomSheetDialog = new BottomSheetDialog(this);
View bottom_sheet_dialog = getLayoutInflater().inflate(R.layout.activity_main,null);
//code for get selected hospital number
hcontact = (TextView) bottom_sheet_dialog.findViewById(R.id.hcontact);
bottomSheetDialog.setContentView(bottom_sheet_dialog);
searchableSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(getApplicationContext(),"item clicked",Toast.LENGTH_LONG).show();
Member member = members.get(i);
hcontact.setText(member.getHosCno());
bottomSheetDialog.show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
//
}
@Override
protected void onResume() {
super.onResume();
reff = FirebaseDatabase.getInstance().getReference("Member");
iFirebaseLoadDone = this;
reff.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
List<Member> members = new ArrayList<>();
for(DataSnapshot hospitalSnapShot:dataSnapshot.getChildren())
{
members.add(hospitalSnapShot.getValue(Member.class));
}
iFirebaseLoadDone.onFirebaseLoadSuccess(members);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
iFirebaseLoadDone.onFirebaseLoadFailed(databaseError.getMessage());
}
});
}
@Override
public void onFirebaseLoadSuccess(List<Member> memberList) {
members = memberList;
List<String> name_list = new ArrayList<>();
for(Member member:memberList)
name_list.add(member.getHosName());
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,name_list);
searchableSpinner.setAdapter(adapter);
}
@Override
public void onFirebaseLoadFailed(String message) {
}
}
logcat 中显示错误
2020-03-23 16:48:41.113 20768-20768/com.varad_industries.helpinghands E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.varad_industries.helpinghands, PID: 20768
android.content.res.Resources$NotFoundException: String resource ID #0x6f855
at android.content.res.Resources.getText(Resources.java:347)
at android.content.res.MiuiResources.getText(MiuiResources.java:97)
at android.widget.TextView.setText(TextView.java:4557)
at com.varad_industries.helpinghands.MainActivity$2.onItemSelected(MainActivity.java:77)
at android.widget.AdapterView.fireOnSelected(AdapterView.java:931)
at android.widget.AdapterView.dispatchOnItemSelected(AdapterView.java:920)
at android.widget.AdapterView.-wrap1(AdapterView.java)
at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:890)
at android.os.Handler.handleCallback(Handler.java:754)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:165)
at android.app.ActivityThread.main(ActivityThread.java:6375)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
【问题讨论】:
-
请search for the error message你得到,因为这是我这样做时得到的第一个结果:stackoverflow.com/questions/26001780/…