Android: Ändern Sie den Text in ViewPager
Hintergrund
Ich schreibe eine App, die den ViewPager verwendet und die gut funktioniert. Ich muss in der Lage sein, auf eines der Layouts (XML-Datei) zuzugreifen und die darauf enthaltenen Text- und Bildansichten zu aktualisieren. Ich habe versucht, die Ansicht und das Targeting mit "v.findViewById" aufzublähen. Dies scheint die Lösung aus meiner Recherche zu sein, aber vielleicht platziere ich sie an der richtigen Stelle und muss sie mir besser erklären.
Mein Code (ohne zu zielen)
private ImageView circle;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
circle = (ImageView) findViewById(R.id.circles);
MyPagerAdapter adapter = new MyPagerAdapter();
ViewPager myPager = (ViewPager) findViewById(R.id.myViewPager);
myPager.setAdapter(adapter);
myPager.setCurrentItem(1);
myPager.setOnPageChangeListener(new MyPageChangeListener());
}
private int focusedPage = 0;
private class MyPageChangeListener extends ViewPager.SimpleOnPageChangeListener {
@Override
public void onPageSelected(int position) {
focusedPage = position;
switch (focusedPage) {
case 0: circle.setImageResource(R.drawable.circles1); break;
case 1: circle.setImageResource(R.drawable.circles2); break;
case 2: circle.setImageResource(R.drawable.circles3); break;
case 3: circle.setImageResource(R.drawable.circles4); break;
}
}
}
private class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 4;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.zip;
break;
case 1:
resId = R.layout.forecast;
break;
case 2:
resId = R.layout.settings;
break;
case 3:
resId = R.layout.about;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
}
Zu Ihrer Information: Das ImageView "Cicle" ist ein Bild aus 4 Kreisen am unteren Rand des Bildschirms, das beim Seitenwechsel aktualisiert wird, um anzuzeigen, auf welchem Bildschirm Sie sich befinden. gut funktioniert, wollte nur erklären.
TOR
Aktualisieren Sie eine Textansicht mit dem Namen "Stadt" im Layout "Vorhersage".
Vielen Dank im Voraus für jede Hilfe! Nach dieser kleinen Hürde sollte es leicht sein zu segeln.