Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用firebase数据填充ListView_Android_Listview_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 用firebase数据填充ListView

Android 用firebase数据填充ListView,android,listview,firebase,firebase-realtime-database,Android,Listview,Firebase,Firebase Realtime Database,我试图填充我的ListView,但我似乎无法理解。我可以打印这些值,然后它们就不会填充我的ListView了。有人能帮我填充它吗 主要活动 package uk.co.jaunt_app.jaunt; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.Ap

我试图填充我的ListView,但我似乎无法理解。我可以打印这些值,然后它们就不会填充我的ListView了。有人能帮我填充它吗

主要活动

package uk.co.jaunt_app.jaunt;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.crashlytics.android.answers.Answers;
import com.crashlytics.android.answers.CustomEvent;
import com.firebase.client.DataSnapshot;
import com.firebase.client.Firebase;
import com.firebase.client.FirebaseError;
import com.firebase.client.ValueEventListener;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

import static uk.co.jaunt_app.jaunt.R.id.Posts;

public class MainActivity extends AppCompatActivity{

    private FloatingActionButton addmap;
    private Button settingbtn;
    private TextView mNameTextView;
    private TextView mEmailTextView;
    ListView mPosts;
    ArrayAdapter<String> adapter;
    private FirebaseAuth auth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setLogo(R.drawable.jauntlogodark);
        getSupportActionBar().setDisplayUseLogoEnabled(true);
        setContentView(R.layout.activity_main);
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, Posts);

        Firebase.setAndroidContext(this);

        Firebase ref = new Firebase(Config.FIREBASE_URL);
        FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser();

        String uid = currentFirebaseUser.getUid();
        Firebase usersRef = ref.child("Users").child(uid).child("name");
        Firebase emailRef = ref.child("Users").child(uid).child("email");
        Firebase postRef = ref.child("Users").child(uid).child("Maps");

        mNameTextView = (TextView) findViewById(R.id.NameTextView);
        mPosts = (ListView) findViewById(Posts);


        postRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {
                for (final DataSnapshot postSnapshot : snapshot.getChildren()) {
                    //Getting the data from snapshot

                    Person person = postSnapshot.getValue(Person.class);
                    String posts = "Name: " + person.getMapName() + "\n\n";


                    Toast.makeText(getApplicationContext(),
                            "Name: " + person.getMapName(), Toast.LENGTH_LONG)
                            .show();

                    mPosts.setAdapter(adapter);
                }
            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {

            }
        });


        mEmailTextView = (TextView) findViewById(R.id.EmailTextView);

        emailRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                String email = dataSnapshot.getValue(String.class);
                mEmailTextView.setText(email);

            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {

            }
        });



        addmap = (FloatingActionButton) findViewById(R.id.add_map);
        addmap.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                Answers.getInstance().logCustom(new CustomEvent("Added Map"));
                Intent intent = new Intent(MainActivity.this, MapStartActivity.class);
                startActivity(intent);
            }
        });

        settingbtn = (Button) findViewById(R.id.settingbtn);
        settingbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SettingsActivity.class);
                startActivity(intent);
            }
        });

    }

}
package uk.co.jaunt\u app.jaunt;
导入android.content.Intent;
导入android.os.Bundle;
导入android.support.design.widget.FloatingActionButton;
导入android.support.v7.app.AppActivity;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.crashlytics.android.answers.answers;
导入com.crashlytics.android.answers.CustomEvent;
导入com.firebase.client.DataSnapshot;
导入com.firebase.client.firebase;
导入com.firebase.client.firebase错误;
导入com.firebase.client.ValueEventListener;
导入com.google.firebase.auth.FirebaseAuth;
导入com.google.firebase.auth.FirebaseUser;
导入静态uk.co.jaunt\u app.jaunt.R.id.Posts;
公共类MainActivity扩展了AppCompatActivity{
私有浮动操作按钮addmap;
私人按钮设置;
私有文本视图mNameTextView;
私有文本视图mEmailTextView;
列表视图mpost;
阵列适配器;
私有FirebaseAuth-auth;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.drawable.jauntlogodark);
getSupportActionBar().setDisplayUseLogoEnabled(true);
setContentView(R.layout.activity_main);
adapter=new ArrayAdapter(这是android.R.layout.simple\u下拉列表\u item\u 1line,Posts);
Firebase.setAndroidContext(this);
Firebase ref=新的Firebase(Config.Firebase\u URL);
FirebaseUser currentFirebaseUser=FirebaseAuth.getInstance().getCurrentUser();
字符串uid=currentFirebaseUser.getUid();
Firebase usersRef=ref.child(“用户”).child(uid).child(“名称”);
Firebase emailRef=ref.child(“用户”).child(uid).child(“电子邮件”);
Firebase postRef=ref.child(“用户”).child(uid).child(“地图”);
mNameTextView=(TextView)findviewbyd(R.id.NameTextView);
mPosts=(ListView)findViewById(Posts);
postRef.addValueEventListener(新的ValueEventListener(){
@凌驾
公共无效onDataChange(数据快照快照){
对于(最终DataSnapshot postSnapshot:snapshot.getChildren()){
//从快照获取数据
Person-Person=postSnapshot.getValue(Person.class);
String posts=“Name:”+person.getMapName()+“\n\n”;
Toast.makeText(getApplicationContext(),
名称:“+person.getMapName(),Toast.LENGTH\u LONG)
.show();
mPosts.setAdapter(适配器);
}
}
@凌驾
取消后的公共无效(FirebaseError FirebaseError){
}
});
mEmailTextView=(TextView)findViewById(R.id.EmailTextView);
emailRef.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
String email=dataSnapshot.getValue(String.class);
mEmailTextView.setText(电子邮件);
}
@凌驾
取消后的公共无效(FirebaseError FirebaseError){
}
});
addmap=(FloatingActionButton)findViewById(R.id.add\u map);
addmap.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Answers.getInstance().logCustom(新的CustomEvent(“添加的映射”);
意向意向=新意向(MainActivity.this、MapStartActivity.class);
星触觉(意向);
}
});
settingbtn=(按钮)findViewById(R.id.settingbtn);
settingbtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(MainActivity.this,setingsActivity.class);
星触觉(意向);
}
});
}
}

将适配器添加到listview

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setLogo(R.drawable.jauntlogodark);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
    setContentView(R.layout.activity_main);
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, Posts);

    Firebase.setAndroidContext(this);

    Firebase ref = new Firebase(Config.FIREBASE_URL);
    FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser();

    String uid = currentFirebaseUser.getUid();
    Firebase usersRef = ref.child("Users").child(uid).child("name");
    Firebase emailRef = ref.child("Users").child(uid).child("email");
    Firebase postRef = ref.child("Users").child(uid).child("Maps");

    mNameTextView = (TextView) findViewById(R.id.NameTextView);
    mPosts = (ListView) findViewById(Posts);
    mPosts.setAdapter(adapter);
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.drawable.jauntlogodark);
getSupportActionBar().setDisplayUseLogoEnabled(true);
setContentView(R.layout.activity_main);
adapter=new ArrayAdapter(这是android.R.layout.simple\u下拉列表\u item\u 1line,Posts);
Firebase.setAndroidContext(this);
Firebase ref=新的Firebase(Config.Firebase\u URL);
FirebaseUser currentFirebaseUser=FirebaseAuth.getInstance().getCurrentUser();
字符串uid=currentFirebaseUser.getUid();
Firebase usersRef=ref.child(“用户”).child(uid).child(“名称”);
Firebase emailRef=ref.child(“用户”).child(uid).child(“电子邮件”);
Firebase postRef=ref.child(“用户”).child(uid).child(“地图”);
mNameTextView=(TextView)findviewbyd(R.id.NameTextView);
mPosts=(ListView)findViewById(Posts);
mPosts.setAdapter(适配器);
1)移动此

mPosts.setAdapter(adapter);
到这里

mPosts = (ListView) findViewById(Posts);
mPosts.setAdapter(adapter);
2) 执行此操作以实际显示数据

String mapName = person.getMapName();
adapter.add(mapName);
3) 替换


数据也需要添加到适配器中谢谢你,工作愉快!
android.R.layout.simple_dropdown_item_1line 
android.R.layout.android simple_list_item_1