Hi
ich habe heute versucht mit diesem Tutorial (http://blog.stylingandroid.com/archives/537) mehrere Seiten zum verschieben zu machen.
Jetzt habe ich folgendes XML-Files:
Das ist der Code vom ViewPager selbst :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.viewpagerindicator.TitlePageIndicator
android:id="@+id/indicator"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
Alles anzeigen
Dann habe ich die Activity die dazu gehört (ViewPagerActivity):
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.widget.TextView;
import com.viewpagerindicator.TitlePageIndicator;
public class ViewPagerActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_pager_layout);
ViewPagerAdapter Pageadapter = new ViewPagerAdapter( this );
ViewPager pager =
(ViewPager)findViewById( R.id.viewpager );
TitlePageIndicator indicator =
(TitlePageIndicator)findViewById( R.id.indicator );
pager.setAdapter( Pageadapter );
indicator.setViewPager( pager );
}
}
Alles anzeigen
Und die Adapteractivity also ViewPagerAdapter:
import com.viewpagerindicator.*;
import android.content.Context;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
public class ViewPagerAdapter extends PagerAdapter
implements TitleProvider
{
private static String[] titles = new String[]
{
"Page 1",
"Page 2"
};
private final Context context;
public ViewPagerAdapter( Context context )
{
this.context = context;
}
public String getTitle( int position )
{
return titles[ position ];
}
@Override
public int getCount()
{
return titles.length;
}
@Override
public Object instantiateItem( View pager, int position )
{
LayoutInflater inflater = (LayoutInflater) pager.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.listlitermanager;
break;
case 1:
resId = R.layout.listkostenmanager;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) pager).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 view, Object object )
{
return view.equals( object );
}
@Override
public void finishUpdate( View view ) {}
@Override
public void restoreState( Parcelable p, ClassLoader c ) {}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate( View view ) {}
}
Alles anzeigen
Und jetzt habe ich moch die beiden Layoutdateien, welche auch im Adapter über public Object instantiateItem aufgerufen werden:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/txtViewListKostenmanager"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="@string/txt_listkostenmanager_no_text"
android:textAppearance="?android:attr/textAppearanceLarge"
android:padding="10dip"
android:textSize="25sp"
>
</TextView>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/txtViewListKostenmanager"
android:layout_below="@+id/sp_listkostenmanager_auswahl" >
</ListView>
</RelativeLayout>
Alles anzeigen
Und:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/txtViewListKostenmanager"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="@string/txt_listkostenmanager_no_text"
android:textAppearance="?android:attr/textAppearanceLarge"
android:padding="10dip"
android:textSize="25sp"
>
</TextView>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/txtViewListKostenmanager"
android:layout_below="@+id/sp_listkostenmanager_auswahl" >
</ListView>
</RelativeLayout>
Alles anzeigen
Das klappt auch alles super. Ich kann die ViewPagerActivity ganz normal aufrufen und bekomme dann eine Seite angezeigt, wo ich oben diese Leiste sehen kann und auf dem Bildschirm kann ich das dann alles super hin und her schieben.
Jetzt will ich aber die ListViews in den letzten beiden Layoutdateien füllen, eben so wie die TextViews. Wenn ich jetzt aber in der ViewPagerActivity ganz oben ein TextView über die Klasse R anspreche und dann mit setText einen Text setzten will, dann geht das nicht. Der gibt mir einen Laufzeitfehler aus. Wie kann ich denn jetzt auf die TextViews und ListViews in den beiden untersten Layouts zugreifen?
Ich habe schon sau viel gegoogle aber leider keine Antwort auf meine Frage gefunden
Vielen Dank schon mal!
LG
Marco