我有一個TabView,其中包含來自Firebase和+/-按鈕的數據以及列表中的每個項目。現在我想在「+」按鈕單擊時將項目添加到數組列表中。但不是更新數組列表而是更新數組列表按鈕上的項目在列表視圖中以及選項卡視圖中單擊。嘗試將不同選項卡的列表視圖項添加到同一個列表數組中。
我指的是該項目的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);}
「orderName」是我希望在按鈕單擊時添加項目的數組列表。 請讓我知道是否需要任何其他信息。
你是說每次你有一個單獨的項目在你的列表中被覆蓋? –
是的....在不同的按鈕點擊它只添加特定的項目數組列表 – user2718012
所以ArrayList只包含一個項目? –