gpt4 book ai didi

android - 如何使用 Firebase 列表适配器

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:24:44 24 4
gpt4 key购买 nike

我正在尝试按照本教程进行操作:

https://www.youtube.com/watch?v=2J6spwAVP0M

但是在我复杂的应用程序上实现它并没有奏效,所以我从头开始尝试..

我创建了这个简单的 MainActivity:

public class MainActivity extends AppCompatActivity{

Firebase mRef;
com.firebase.ui.FirebaseListAdapter<String> myAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRef = new Firebase("https://<myURL>..");

myAdapter = new FirebaseListAdapter<String>(this,String.class,android.R.layout.simple_list_item_1,mRef) {
@Override
protected void populateView(View view, String s, int i) {
TextView text = (TextView)view.findViewById(android.R.id.text1);
text.setText(s);

}
};
Button addBtn = (Button) findViewById(R.id.add_button);
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mRef.push().setValue("test123");
}
});
}
}

现在我有几个问题:

1) 什么触发了 populateView?我只是无法让它运行

2) android.R.layout.simple_list_item_1 到底应该替换成什么?我尝试创建自己的 ListView 并用我的 R.id.listView 替换上面的内容,但没有任何反应。我不知道这个魔法是如何工作的。

3) 即使这个简单的应用程序也不起作用。按钮确实将“test123”添加到服务器上的正确位置,但我在我的应用程序上看不到任何东西。有什么问题吗?

最佳答案

我发现出了什么问题,我缺少一个 Listview..这是更正后的代码:

public class MainActivity extends AppCompatActivity {

Firebase mRef;
com.firebase.ui.FirebaseListAdapter<String> myAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRef = new Firebase("https://<myURL>..");

myAdapter = new FirebaseListAdapter<String>(this,String.class,android.R.layout.simple_list_item_1,mRef) {
@Override
protected void populateView(View view, String s, int i) {
TextView text = (TextView) view.findViewById(android.R.id.text1);
text.setText(s);
}
};
final ListView lv = (ListView) findViewById(R.id.listView);
lv.setAdapter(myAdapter);

Button addBtn = (Button) findViewById(R.id.add_button);
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mRef.push().setValue("test123");
}
});
}


}

lv.setAdapter 是将适配器关联到我的列表并触发 populateView..这基本上是我所有 3 个问题的答案..

这也是 xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.twodwarfs.firebaselistadapter.MainActivity">


<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="add"
android:id="@+id/add_button"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true" />

<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_toStartOf="@+id/add_button"
android:layout_below="@+id/textView" />
</RelativeLayout>

关于android - 如何使用 Firebase 列表适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37580991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com