0

ボタンをクリックせずに複数のアクティビティでスワイプしようとしています。それぞれのアクティビティで画面をスワイプしたいだけですが、現在、アクティビティで画面をスワイプすることはできません。 ここで 、この質問のように尋ねます。これで、レイアウトのみを検索できるようになりました。私はこのチュートリアルに従います 。 説明
HotelDetails アクティビティを開くと、最初にスワイプできる部分と 2 つ目の部分がリスト ビューの 2 つの部分に分割されます。
スワイプ部分では、3 つのアクティビティを表示する必要があり
ます。 1. HotelMap (スワイプ部分のメインおよびフロント画面)
2. hotelAddress (左にスワイプ)
3. hotelContact (右にスワイプ)。

これが私のコードですが、アクティビティではなく画面をスワイプするだけです。

MyPagerAdapter adapter = new MyPagerAdapter();
     myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
     myPager.setAdapter(adapter);
     myPager.setCurrentItem(3);



private class MyPagerAdapter extends PagerAdapter {

    public int getCount(){
        return 3;
    }

    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 = showHotelContact();             
            break;
        case 1:
            resId = showHotelAddress();         
            break;              
        case 2:     
            resId=showHotelMap();               
            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 void finishUpdate(View arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0 == ((View) arg1);

    }

    @Override
    public void restoreState(Parcelable arg0, ClassLoader arg1) {
        // TODO Auto-generated method stub

    }

    @Override
    public Parcelable saveState() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void startUpdate(View arg0) {
        // TODO Auto-generated method stub

    }

}

public int showHotelMap()
{
 i need to swipe activity therfore i use commented code but not able
//      Intent bookIntent = new Intent();     
//      bookIntent.setClass(HotelMap.this,ShowMap.class);
//      startActivity(bookIntent);   
//      ShowMap showmap = new ShowMap();        
    int resId = R.layout.hoteladdress;
    return resId;

}
public int showHotelAddress()
{
    int resId;
    resId = R.layout.hoteladdress;      
    TextView tvAddress = (TextView)findViewById(R.id.tvHotelAddress);
    tvAddress.setText(address);
    return resId;
}
public int showHotelContact()
{
    int resId;
    resId = R.layout.hotelcontact;
    return resId;
}

}

showHotelMap でコメント付きのコードを使用していますが、次の例外が表示されます

01-07 17:38:12.993: E/AndroidRuntime(10442): android.view.InflateException: Binary XML file line #2: Error inflating class com.google.android.maps.MapView
01-07 17:38:12.993: E/AndroidRuntime(10442):    at android.view.LayoutInflater.createView(LayoutInflater.java:606)
01-07 17:38:12.993: E/AndroidRuntime(10442):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
01-07 17:38:12.993: E/AndroidRuntime(10442):    at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
01-07 17:38:12.993: E/AndroidRuntime(10442):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
01-07 17:38:12.993: E/AndroidRuntime(10442):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
01-07 17:38:12.993: E/AndroidRuntime(10442):    at com.programr.dishoom.HotelMap$MyPagerAdapter.instantiateItem(HotelMap.java:134)
4

1 に答える 1

0

MapView は MapActivity 内に存在する必要があります。ViewPager に入れることはできません。ただし、フラグメントをサポートする新しい Google Maps Android API v2 を使用できます。ただし、水平スワイプの問題に対処する必要があります (つまり、マップ ページにいるとき、マップ パン ジェスチャとページ変更ジェスチャをどのように区別しますか?)。

参照: https://developers.google.com/maps/documentation/android/v1/hello-mapview

https://developers.google.com/maps/documentation/android/

于 2013-01-07T17:36:26.377 に答える