Yar*_*hen 7 android listadapter firebase firebase-realtime-database firebaseui
我正在尝试使用本教程:
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");
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有几个问题:
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");
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
这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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21740 次 |
最近记录: |