ورود

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;
}


}