我有一個片段中的recyclerview,並且通過web請求發送數據。 我想要的是忽略數據數組的前3項,我只是希望它從索引3開始。如何使recyclerview使用來自特定索引的數組列表
我認爲這將解決使用homeData.sublist(0,2)
,但我不知道究竟在哪裏把這條線..!我嘗試了幾個地方,但沒有工作..!?
我的片段
public class HomeFragment extends BaseFragment {
private RecyclerView recyclerView;
ArrayList<Home.HomeItem> homeData;
private HomeAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
InitRecyclerView();
GetData();
return rootView;
}
private void GetData() {
WebRequests.HomeRequest(new OnRequestResults() {
@Override
public void OnSuccess(Object o) {
ArrayList<Home.HomeItem> homeList = (ArrayList<Home.HomeItem>) o;
homeList.subList(0, 2); // tried here, but it didn't work
homeData.clear();
homeData.addAll(homeList);
adapter.notifyDataSetChanged();
}
}
private void InitRecyclerView() {
homeData = new ArrayList<>();
recyclerView.setHasFixedSize(true);
LayoutManager mLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(mLayoutManager);
homeList.subList(0, 2); // tried here, it gives carsh `IndexOutofBound..`
adapter = new HomeAdapter(homeData, getActivity());
recyclerView.clearOnScrollListeners();
recyclerView.setAdapter(adapter);
}
}
我的適配器
//code
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
data.subList(0, 2); //noting changes here too
holder.title.setText(data.get(position).getTitle());
Picasso.with(context)
.load(data.get(position)
.getImgUrl).placeholder(R.drawable.logo)
.into(holder.pic);
}
//code
更新------------------------ -------------------------------------------
我是使用.subList錯誤,我必須在參數裏面的新列表中指定開始和結束,我在添加限制,我想刪除哪些是完全愚蠢的!
我還在onSuccess中添加了這一行!
@Override
public void OnSuccess(Object o) {
ArrayList<Home.HomeItem> home = (ArrayList<Home.HomeItem>) o;
homeData.clear();
homeData.addAll(home.subList(3,home.size())); //here
adapter.notifyDataSetChanged();
}
你是對的我濫用'subList',在我看到你的答案之前我想到了,但這是正確的答案。 –