View Full Version : مشکل در attach کردن ویوپیجر به AdapterFragment
raha.scientific
جمعه 12 آذر 1395, 20:16 عصر
سلام
من موقع set کردن ویوپیجر در TabLayout این اخطار رو میگیرم:
()Cannot resolve method setupWhithViewPager
ممنون میشم راهنمایی کنید
modernserver
شنبه 13 آذر 1395, 00:17 صبح
سلام
لطفا کد کامل java رو قرار دهید + import ها
اما فکرمیکنم ایمپورت نکردید
raha.scientific
شنبه 13 آذر 1395, 00:49 صبح
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TableLayout;
import com.narsis.countriesandcontinents.Database;
import com.narsis.countriesandcontinents.R;
public class MainActivity extends AppCompatActivity {
Database mydatabase=new Database(this);
public static Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=getApplicationContext();
setTabOptions();
mydatabase.CreateDatabase();
mydatabase.open();
}
private void setTabOptions(){
//
ViewPager viewPager= (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new AdapterFragment(getSupportFragmentManager(),MainAc tivity.this));
// Give the TabLayout the ViewPager
TableLayout tabStrip= (TableLayout) findViewById(R.id.tabs);
tabStrip.setupWhitViewPager(viewPager);
}
}
raha.scientific
شنبه 13 آذر 1395, 10:12 صبح
توی کلاس AdapterFragment هم در متد override شده ی() getItem به دستور return ایراد می گیره:
return PageFragment.newInstance(position)
package com.narsis.countriesandcontinents.mainPage;
import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
/**
* Created by Narsis on 12/1/2016.
*/
public class AdapterFragment extends FragmentPagerAdapter{
//PageFragment pageFragment;
private Context context;
final int TabPageCount = 3;
private String Tab_Title[] = new String[]{"tab1","tab2","tab3"};
public AdapterFragment(FragmentManager fm, Context context) {
super(fm);
this.context=context;
}
@Override
public int getCount() {
return TabPageCount;
}
@Override
public Fragment getItem(int position) {
//return null;
return PageFragment.newInstance(position);
}
@Override
public CharSequence getPageTitle(int position) {
return Tab_Title[position];
}
}
Nevercom
شنبه 13 آذر 1395, 12:16 عصر
تو کدهاتون اشتباه تایپی وجود داره
tabStrip.setupWhitViewPager(viewPager);
باید این باشه
tabStrip.setupWithViewPager(viewPager);
raha.scientific
شنبه 13 آذر 1395, 15:27 عصر
ممنون اصلاحش کردم ولی بازم درست نشد، به غیراز این اشکال از چیز دیگه ای نمیتونه باشه؟
برای سوال دوم هم اگر راهنمایی کنید ممنون می شم
modernserver
شنبه 13 آذر 1395, 22:53 عصر
ابتدا از پروزه بک اپ بگیرید و سپس مسیر زیر رو برید
File -> "Invalidate Caches
raha.scientific
یک شنبه 14 آذر 1395, 13:34 عصر
این کارم انجام دادم ولی بازم درست نشد
درمورد متد getItem() چطور؟ داخل متد موقع return اخطار میده
return PageFragment.newInstance(position)
کدها:
import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class AdapterFragment extends FragmentPagerAdapter{
//PageFragment pageFragment;
private Context context;
final int TabPageCount = 3;
private String Tab_Title[] = new String[]{"tab1","tab2","tab3"};
public AdapterFragment(FragmentManager fm, Context context) {
super(fm);
this.context=context;
}
@Override
public int getCount() {
return TabPageCount;
}
@Override
public Fragment getItem(int position) {
//return null;
return PageFragment.newInstance(position);
}
@Override
public CharSequence getPageTitle(int position) {
return Tab_Title[position];
}
}
Nevercom
یک شنبه 14 آذر 1395, 15:38 عصر
اگر خروجی متد PageFragment.newInstance یک Fragment باشه نباید خطایی بده
raha.scientific
یک شنبه 14 آذر 1395, 17:16 عصر
PageFragment از Fragment
extends شده این کلاس:
public class PageFragment extends Fragment {
private int mpage;
public static final String ARG_PAGE="ARG_PAGE";
RecyclerView recyclerView;
public static PageFragment newInstance(int page) {
Bundle args =new Bundle();
args.putInt(ARG_PAGE,page);
PageFragment fragment = new PageFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mpage = getArguments().getInt(ARG_PAGE);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_page, container,false);
recyclerView= (RecyclerView) view.findViewById(R.id.my_recyclerview);//instead of textview
//diferent
//content of each Tabs
AdapterCardView adapterCard = new AdapterCardView(MainActivity.context);
recyclerView.setAdapter(adapterCard);
return view;
}
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.