নীচে তালিকার সাথে একটি কোড স্নিপেট রয়েছে। আমি একটি খালি ভিউ এবং একটি শিরোনামদর্শন যুক্ত করেছি। হেডারভিউ যুক্ত করা অন আইটেমিক্লিকের অবস্থানটি একে একে বাড়িয়ে তোলে।
সুতরাং শিরোনাম ছাড়াই প্রথম তালিকার উপাদানটির অবস্থান 0 হবে, শিরোনামের সাথে প্রথম তালিকার উপাদানটির অবস্থান হবে 1!
এটি আমার অ্যাডাপ্টারে ত্রুটি সৃষ্টি করে, যেমন গেট আইটেম () কল করার সময় এবং কিছু অন্যান্য পদ্ধতি ব্যবহার করার জন্য, নীচে দেখুন। আশ্চর্যের বিষয়: অ্যাডাপ্টারের গেটভিউ () পদ্ধতিতে শিরোনাম ভিউ যুক্ত হলেও পজিশন 0 সহ প্রথম তালিকার উপাদানটি অনুরোধ করা হয় !!
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ListView list = (ListView) viewSwitcher.findViewById(R.id.list);
View emptyView = viewSwitcher.findViewById(R.id.empty);
list.setEmptyView(emptyView);
View sectionHeading = inflater.inflate(R.layout.heading, list, false);
TextView sectionHeadingTextView = (TextView) sectionHeading.findViewById(R.id.headingText);
sectionHeadingTextView.setText(headerText);
list.addHeaderView(sectionHeading);
list.setAdapter(listAdapter);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
listAdapter.getItem(position);
//Do something with it
}
});
}
কিছু অ্যাডাপ্টার পদ্ধতি:
@Override
public int getViewTypeCount() {
return TYPE_COUNT;
}
@Override
public int getItemViewType(int position) {
return (position < items.size()) ? ITEM_NORMAL : ITEM_ADVANCED;
}
@Override
public Product getItem(int position) {
return items.get(position);
}
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return (position < items.size());
}
হেডারভিউ যুক্ত করার সময় এটাই কি স্বাভাবিক আচরণ ?? এবং কিভাবে আমার অ্যাডাপ্টারে সমস্যাগুলি কাটিয়ে উঠতে হবে?