我有一个TabView,列表包含来自Firebase和+/-按钮的数据以及列表中的每个项目。现在我想将项目添加到" +"按钮click.But而不是更新数组列表,它在列表视图和标签视图中按钮单击时覆盖项目。
我在这个项目中引用Firebase实时数据库示例。(https://github.com/firebase/quickstart-android/tree/master/database/app/src/main/java/com/google/firebase/quickstart/database)。
下面是我的片段代码,然后由不同的标签片段扩展。
public abstract class MenuFragment extends android.support.v4.app.Fragment {
private static final String TAG = "MenuFragment";
private DatabaseReference mDatabase;
private FirebaseRecyclerAdapter<Post, MenuViewHolder> mAdapter;
private RecyclerView mRecycler;
private LinearLayoutManager mManager;
int count=1;
public ArrayList<String> orderName = new ArrayList<>();
public MenuFragment() {}
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View rootView = inflater.inflate(R.layout.fragment_all, container, false);
mDatabase = FirebaseDatabase.getInstance().getReference();
mRecycler = (RecyclerView) rootView.findViewById(R.id.messages_list);
mRecycler.setHasFixedSize(true);
return rootView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Set up Layout Manager, reverse layout
mManager = new LinearLayoutManager(getActivity());
mManager.setReverseLayout(true);
mManager.setStackFromEnd(true);
mRecycler.setLayoutManager(mManager);
// Set up FirebaseRecyclerAdapter with the Query
final Query postsQuery = getQuery(mDatabase);
mAdapter = new FirebaseRecyclerAdapter<Post, MenuViewHolder>(Post.class, R.layout.item_post,
MenuViewHolder.class, postsQuery) {
@Override
protected void populateViewHolder(final MenuViewHolder viewHolder, final Post model, final int position) {
viewHolder.bindToPost(model, new View.OnClickListener() {
@Override
public void onClick(View buttonView) {
final DatabaseReference postRef = getRef(position);
orderName.add(model.name);
}
});
}
};
mRecycler.setAdapter(mAdapter);
}
@Override
public void onDestroy() {
super.onDestroy();
if (mAdapter != null) {
mAdapter.cleanup();
}
}
public String getUid() {
return FirebaseAuth.getInstance().getCurrentUser().getUid();
}
public abstract Query getQuery(DatabaseReference databaseReference);}
&#34; ORDERNAME&#34;是我想要按钮点击添加项目的arraylist。 如果需要任何其他信息,请告诉我。
答案 0 :(得分:0)
这种情况正在发生,因为您没有使用该列表的相同实例。在第一个选项卡中,您有一个实例,在第二个选项卡中,您有另一个实例。您需要在List
的同一个实例上添加这些项目。现在,在第一个选项卡中添加项目,当您再次单击第二个选项卡时,再次实例化列表,这显然是空的。
希望它有所帮助。