如何在textView中获取firebase数据库 [英] How to get firebase database in textView

查看:251
本文介绍了如何在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
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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆