گرفتن کدِ سوییچ کیسِ آداپتر فرگمنت در یک فرگمنت برای فراخوانی یک وب ویو
با سلام خدمت شما دوستان. سوالی برام پیش اومده که پس از کلی تلاش هنوز نتونستم جوابی پیدا کنم.
من از FragmentPagerAdapter استفاده کردم برای نمایش تعداد 41 عدد Fragment. البته قصد من از استفاده از اون جابجایی راحت بین صفحات بود. بنابراین یک فرگمنت ایجاد کردم و به همه ی case های مورد نظر، همون فرگمنت رو اختصاص دادم. در هر فرگمنت هم از WebView استفاده کردم و متن رو با کد Html وارد کردم. حالا مشکل من اینه که می خوام کد مورد نظرِ case رو گرفته و به WebView اختصاص بدم. WebView هم توسّط یک متد، یک string میگیره که بصورت کوتیشن خالی نوشته میشه. حالا من قبل از این دکمه هایی رو اختصاص داده بودم که بر اساس آداپتر لیست ویو، position هر کدوم رو می گرفت و بر طبق نام گذاری فایل های html، فایل مورد نظر رو نشون می داد. امّا حالا کد متد WebView رو داخل همین فرگمنت قرار دادم تا همون string رو بگیره. امّا نمی دونم چجوری مکان و شماره ی هر قسمت Adapter رو بگیرم.
در اکتیویتی اوّلیّه، با زدن دکمه، موارد مورد نیاز با Intent منتقل شده و در اکتویتی دریافت میشه. حالا برای این فرگمنت باید چجوری این کار رو بکنم.این سؤال اوّل.
امّا سؤال دوم اینکه آیا Switch Case از حلقه ی for پشتیبانی می کنه که من نیاز نباشه برای همه ی 41 مورد case تکراری بسازم یا نه.
با تشکر از شما
public class TabsPagerAdapter extends FragmentPagerAdapter {
private TabsPagerAdapter mAdapter;
public TabsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int index) {
switch (index) {
case 0:
return new MoviesFragment();
case 1:
return new MoviesFragment();
case 2:
return new MoviesFragment();
case 3:
return new MoviesFragment();
case 4:
return new MoviesFragment();
case 5:
return new MoviesFragment();
...
case 39:
return new MoviesFragment();
case 40:
return new MoviesFragment();
}
return null;
}
@Override
public int getCount() {
return 41;
}
}
ACTIVITY:
viewSwipePager = (ViewPager) findViewById(R.id.swipepager);
actionBar = getActionBar();
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewSwipePager.setAdapter(mAdapter);
FRAGMENT:
WebView webView;
ViewGroup bookMovie;
private TabsPagerAdapter mAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_movies, container, false);
bookMovie = (ViewGroup) rootView.findViewById(R.id.bookMovie);
testWebView(""+0); // در اینجا میخوام به جای این مورد، شماره ی فرگمنت و کیس اون دریافت بشه و به جای صفر نوشته بشه
return rootView;
}
public void testWebView(String bookViewId) {
String content = "";
content = readContent("content/text" + bookViewId + ".html");
webView = new WebView(G.context);
bookMovie.addView(webView);
webView.loadDataWithBaseURL("file:///android_asset", content, "text/html", "UTF-8", "");
webView.setBackgroundColor(0x00000000);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.setLongClickable(false);
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .