আমি ভিউপিজারে সামগ্রী আপডেট করতে পারি না।
ফ্র্যাগমেন্টপেজারএডাপ্টার ক্লাসে ইনস্ট্যান্টিয়েট আইটেম () এবং গেটআইটেম () এর সঠিক ব্যবহার কী?
আমি আমার টুকরোগুলি তাত্ক্ষণিকভাবে ফিরিয়ে আনতে কেবল getItem () ব্যবহার করছিলাম:
@Override
public Fragment getItem(int position) {
return new MyFragment(context, paramters);
}
এটি ভাল কাজ করেছে। ব্যতীত আমি সামগ্রীটি পরিবর্তন করতে পারি না।
সুতরাং আমি এটি পেয়েছি: ভিউপেজার পেজারআডাপ্টার ভিউটি আপডেট করছে না
"ইনস্ট্যান্ট আইটেম () পদ্ধতিতে যে কোনও তাত্ক্ষণিক দৃষ্টিভঙ্গির জন্য সেটট্যাগ () পদ্ধতিটি ব্যবহার করা আমার পদ্ধতি approach
এখন আমি এটি করতে ইনস্ট্যান্টিয়েট আইটেম () প্রয়োগ করতে চাই। তবে আমি জানি না আমাকে কী ফিরতে হবে (টাইপটি অবজেক্ট) এবং গেটআইটেম (ইনট পজিশন) এর সাথে কী সম্পর্ক?
আমি রেফারেন্স পড়ি :
পাবলিক অ্যাবস্ট্রাক্ট টুকরো টুকরো
নির্দিষ্ট অবস্থানের সাথে যুক্ত খণ্ডটি ফেরত দিন।
সর্বজনীন অবজেক্ট ইনস্ট্যান্টিয়েট আইটেম (ভিউ গ্রুপের ধারক, অন্তর্নিহিত অবস্থান)
প্রদত্ত অবস্থানের জন্য পৃষ্ঠা তৈরি করুন। অ্যাডাপ্টারটি এখানে প্রদত্ত ধারকটিতে ভিউ যুক্ত করার জন্য দায়ী, যদিও এটি কেবলমাত্র এটি শেষ হওয়া আপডেট (ভিউগ্রুপ) থেকে ফিরে আসার সময়ই সম্পন্ন করা উচিত তা নিশ্চিত করা উচিত। পরামিতি
ধারকযুক্ত পৃষ্ঠাটি দেখানো হবে এমন ধারণাগুলি সহ। অবস্থান পৃষ্ঠা অবস্থান তাত্ক্ষণিকভাবে করা হবে।
রিটার্নস
নতুন পৃষ্ঠাটি উপস্থাপন করে এমন একটি বস্তু প্রদান করে। এটি দেখার প্রয়োজন হবে না, তবে পৃষ্ঠার অন্য কোনও ধারক হতে পারে।
কিন্তু আমি এখনও এটি না।
আমার কোড এখানে। আমি সমর্থন প্যাকেজ ভি 4 ব্যবহার করছি।
ViewPagerTest
public class ViewPagerTest extends FragmentActivity {
private ViewPager pager;
private MyFragmentAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pager1);
pager = (ViewPager)findViewById(R.id.slider);
String[] data = {"page1", "page2", "page3", "page4", "page5", "page6"};
adapter = new MyFragmentAdapter(getSupportFragmentManager(), 6, this, data);
pager.setAdapter(adapter);
((Button)findViewById(R.id.button)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
reload();
}
});
}
private void reload() {
String[] data = {"changed1", "changed2", "changed3", "changed4", "changed5", "changed6"};
//adapter = new MyFragmentAdapter(getSupportFragmentManager(), 6, this, data);
adapter.setData(data);
adapter.notifyDataSetChanged();
pager.invalidate();
//pager.setCurrentItem(0);
}
}
MyFragmentAdapter
class MyFragmentAdapter extends FragmentPagerAdapter {
private int slideCount;
private Context context;
private String[] data;
public MyFragmentAdapter(FragmentManager fm, int slideCount, Context context, String[] data) {
super(fm);
this.slideCount = slideCount;
this.context = context;
this.data = data;
}
@Override
public Fragment getItem(int position) {
return new MyFragment(data[position], context);
}
@Override
public int getCount() {
return slideCount;
}
public void setData(String[] data) {
this.data = data;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
MyFragment
public final class MyFragment extends Fragment {
private String text;
public MyFragment(String text, Context context) {
this.text = text;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.slide, null);
((TextView)view.findViewById(R.id.text)).setText(text);
return view;
}
}
এখানেও কেউ একই সমস্যা রয়েছে, কোনও উত্তর নেই http://www.mail-archive.com/android-developers@googlegroups.com/msg200477.html