如何在textView中获取firebase数据库 [英] How to get firebase database in textView
本文介绍了如何在textView中获取firebase数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在textview中显示数据
package com.example.u_ahm.firebase;
输入代码hereimport android.os.StrictMode;
导入android.support.annotation.NonNull;
导入android.support.v7.app.AppCompatActivity;
导入android.os.Bundle;
导入android.view.View;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
导入com.google.android.gms.tasks.Task;
import com.google.firebase.database.ChildEventListener;
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.GenericTypeIndicator;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private DatabaseReference mDatabase;
EditText etID,etName,etAddress,etSeats,etNumber;
按钮addbtn,delbtn,upbtn,showbtn;
TextView txt;
int id = 1;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDatabase = FirebaseDatabase.getInstance()。getReference()。child(College);
init();
$ b private void init(){
etID =(EditText)findViewById(R.id.idText);
etName =(EditText)findViewById(R.id.nameText);
etAddress =(EditText)findViewById(R.id.addText);
etSeats =(EditText)findViewById(R.id.seatsText);
etNumber =(EditText)findViewById(R.id.numText);
addbtn =(Button)findViewById(R.id.insertBtn);
delbtn =(Button)findViewById(R.id.delBtn);
upbtn =(Button)findViewById(R.id.updateBtn);
showbtn =(Button)findViewById(R.id.showBtn);
addbtn.setOnClickListener(dbButtonsListener);
delbtn.setOnClickListener(dbButtonsListener);
upbtn.setOnClickListener(dbButtonsListener);
showbtn.setOnClickListener(dbButtonsListener);
txt =(TextView)findViewById(R.id.textView2);
$ b $ private View.OnClickListener dbButtonsListener = new View.OnClickListener(){
@Override
public void onClick(final View v){
switch(v.getId()){
case R.id.insertBtn:
String name = etName.getText()。toString()。trim();
String address = etAddress.getText()。toString()。trim();
String seats = etSeats.getText()。toString()。trim();
String number = etNumber.getText()。toString()。trim();
HashMap< String,String> map = new HashMap< String,String>();
map.put(Name,name);
map.put(Address,address);
map.put(座位,座位);
map.put(Numbers,number);
$ b mDatabase.child(Integer.toString(id))。setValue(map).addOnCompleteListener(new OnCompleteListener< Void>(){
@Override
public void onComplete(@NonNull Task< Void> task){
if(task.isComplete()){
Toast.makeText(MainActivity.this,Data inserted,Toast.LENGTH_SHORT) .show();
id ++;
}
}
});
break;
案例R.id.delBtn:
break;
案例R.id.updateBtn:
break;
case R.id.showBtn:
mDatabase.addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot){
(DataSnapshot snapshot:dataSnapshot.getChildren()){
College college = snapshot.getValue(College.class);
String string = txt.getText ()+ college.getName()+\\\
Address:+ college.getAddress()+
\ n座位数目:+ college.getSeats() +\\\
Numbers:+ college.getNumbers();
txt.setText(string);
$ b @Override
public void onCancelled(DatabaseError databas eError){
}
});
中断;
}
}
};
$ / code $ / pre
$ b $这是我的数据库
$ b $学院
1
地址:
Gulshan e Iqbal
名称:
理想
数字:
560
位置:
150
2
地址:
Gulshan e Iqbal
名称:
理想
数字:
560
位置:
150
3
地址:
Gulshan e Iqbal
名称:
理想
编号:
560
位置:
150
$ c $现在我得到这个错误
com.google.firebase.database.DatabaseException:反序列化期望一个地图,但得到了一个类java.util.ArrayList
解决方案如果在这一行中得到这个错误 College college = snapshot.getValue (College.class);
,也许你的模型有问题。你可以分享你的logcat吗?
I want to show my data in a textview
package com.example.u_ahm.firebase;
enter code hereimport android.os.StrictMode;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.ChildEventListener;
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.GenericTypeIndicator;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private DatabaseReference mDatabase;
EditText etID, etName, etAddress, etSeats, etNumber;
Button addbtn,delbtn ,upbtn , showbtn;
TextView txt;
int id = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDatabase = FirebaseDatabase.getInstance().getReference().child("College");
init();
}
private void init() {
etID = (EditText) findViewById(R.id.idText);
etName = (EditText) findViewById(R.id.nameText);
etAddress = (EditText) findViewById(R.id.addText);
etSeats = (EditText) findViewById(R.id.seatsText);
etNumber = (EditText) findViewById(R.id.numText);
addbtn = (Button) findViewById(R.id.insertBtn);
delbtn = (Button) findViewById(R.id.delBtn);
upbtn = (Button) findViewById(R.id.updateBtn);
showbtn = (Button) findViewById(R.id.showBtn);
addbtn.setOnClickListener(dbButtonsListener);
delbtn.setOnClickListener(dbButtonsListener);
upbtn.setOnClickListener(dbButtonsListener);
showbtn.setOnClickListener(dbButtonsListener);
txt = (TextView) findViewById(R.id.textView2);
}
private View.OnClickListener dbButtonsListener = new View.OnClickListener() {
@Override
public void onClick(final View v) {
switch (v.getId()){
case R.id.insertBtn:
String name = etName.getText().toString().trim();
String address = etAddress.getText().toString().trim();
String seats = etSeats.getText().toString().trim();
String number = etNumber.getText().toString().trim();
HashMap<String,String> map = new HashMap<String, String>();
map.put("Name",name);
map.put("Address",address);
map.put("Seats",seats);
map.put("Numbers",number);
mDatabase.child(Integer.toString(id)).setValue(map).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isComplete()){
Toast.makeText(MainActivity.this,"Data inserted",Toast.LENGTH_SHORT).show();
id++;
}
}
});
break;
case R.id.delBtn:
break;
case R.id.updateBtn:
break;
case R.id.showBtn:
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot : dataSnapshot.getChildren() ){
College college = snapshot.getValue(College.class);
String string = txt.getText() + "\nName: " + college.getName()+ "\n Address : " + college.getAddress() +
"\n No. of Seats: " + college.getSeats() + "\n Numbers: " + college.getNumbers();
txt.setText(string);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
break;
}
}
};
}
And this is my Database
College
1
Address:
"Gulshan e Iqbal"
Name:
"Ideal"
Numbers:
"560"
Seats:
"150"
2
Address:
"Gulshan e Iqbal"
Name:
"Ideal"
Numbers:
"560"
Seats:
"150"
3
Address:
"Gulshan e Iqbal"
Name:
"Ideal"
Numbers:
"560"
Seats:
"150"
currently I am getting this error
com.google.firebase.database.DatabaseException: Expected a Map while deserializing, but got a class java.util.ArrayList
解决方案 If you get this error in this line College college = snapshot.getValue(College.class);
, perhaps your model has problem. Could you share your logcat?
这篇关于如何在textView中获取firebase数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文