Udacity'nin Temel ANdroid kursunun tur rehberi uygulamasında Fragments kavramını kullandım. Bir süredir dizelerde, xml dosyasında açıklanan bazı dize kaynaklarına erişmekte zorluk yaşadım. Sonunda bir çözüm buldum.
Bu ana aktivite sınıfıdır
paket com.example.android.tourguidekolkata;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
//lines of code
//lines of code
//lines of code
YourClass adapter = new YourClass(getSupportFragmentManager(), getApplicationContext());
//lines of code
// getApplicationContext() method passses the Context of main activity to the class TourFragmentPageAdapter
}
}
Bu, FragmentPageAdapter'ı genişleten Activity olmayan sınıftır.
public class YourClass extends FragmentPagerAdapter {
private String yourStringArray[] = new String[4];
Context context;
public YourClass (FragmentManager fm, Context context)
{
super(fm);
this.context = context; // store the context of main activity
// now you can use this context to access any resource
yourStringArray[0] = context.getResources().getString(R.string.tab1);
yourStringArray[1] = context.getResources().getString(R.string.tab2);
yourStringArray[2] = context.getResources().getString(R.string.tab3);
yourStringArray[3] = context.getResources().getString(R.string.tab4);
}
@Override
public Fragment getItem(int position)
{
}
@Override
public int getCount() {
return 4;
}
@Override
public CharSequence getPageTitle(int position) {
// Generate title based on item position
return yourStringArras[position];
}
}
Context
Android'de nesnelerin etrafından dolaşmak iyi bir fikir değildir . Bellek sızıntılarına neden olabilir. Daha az riskli bir çözüm için cevabıma bakın.