5

さて、私はpagertitlestripを使うことにしました。私が使用しているサポートライブラリにはpagertabstripが含まれていないと想定しています。すべてが正しく更新されたと思ったので、これを修正する方法がわかりません。編集:これはもう存在しませんか?PagerTabStripをPagerTitleStripに変更すると、すべてが機能しますが、期待されるタイトルを操作できません。そのため、PagerTabStripを使用したかったのです。

私は自分の問題の根本を見つけるために基本に戻りました。ABSをインポートした新しいプロジェクトを開始しました。非常に単純なpagerAdapterと単純なフラグメントを設定します。コモンズの本の例を使用しましたが、それでも同じエラーが発生します。クラスが見つかりません例外。PagerTabStripが見つかりません。投稿されたスタックは毎回同じエラーを受け取ります。PagerTabStripを削除すると、すべてが正しく機能します。

xml

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <android.support.v4.view.PagerTabStrip
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top" />

</android.support.v4.view.ViewPager>

主な活動

package com.example.pagetabswipe;

import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.Menu;

import com.actionbarsherlock.app.SherlockFragmentActivity;

public class MainActivity extends SherlockFragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ViewPager pager = (ViewPager)findViewById(R.id.pager);
        pager.setAdapter(new SampleAdapter(getSupportFragmentManager(), this));
    }
}

アダプタ

package com.example.pagetabswipe;

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class SampleAdapter extends FragmentPagerAdapter {
    Context ctxt=null;
    public SampleAdapter(FragmentManager fm, Context ctxt) {
        super(fm);
        this.ctxt=ctxt;
        // TODO Auto-generated constructor stub
    }

    @Override
    public Fragment getItem(int position) {
        return (EditorFragment.newInstance(position));
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 10;
    }
    @Override
    public String getPageTitle(int position) {
    return(EditorFragment.getTitle(ctxt, position));
    }
}

断片

package com.example.pagetabswipe;

import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import com.actionbarsherlock.app.SherlockFragment;

public class EditorFragment extends SherlockFragment {
    private static final String KEY_POSITION = "position";

    static EditorFragment newInstance(int position) {
        EditorFragment frag = new EditorFragment();
        Bundle args = new Bundle();
        args.putInt(KEY_POSITION, position);
        frag.setArguments(args);
        return (frag);
    }

    static String getTitle(Context ctxt, int position) {
        return (String.format(ctxt.getString(R.string.hint), position + 1));
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View result = inflater.inflate(R.layout.editor, container, false);
        EditText editor = (EditText) result.findViewById(R.id.editor);
        int position = getArguments().getInt(KEY_POSITION, -1);
        editor.setHint(getTitle(getActivity(), position));
        return (result);
    }
}

エラー

11-24 18:01:25.630: E/AndroidRuntime(3505): FATAL EXCEPTION: main
11-24 18:01:25.630: E/AndroidRuntime(3505): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pagetabswipe/com.example.pagetabswipe.MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class android.support.v4.view.PagerTabStrip
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1696)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1716)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.app.ActivityThread.access$1500(ActivityThread.java:124)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.os.Looper.loop(Looper.java:130)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.app.ActivityThread.main(ActivityThread.java:3806)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at java.lang.reflect.Method.invokeNative(Native Method)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at java.lang.reflect.Method.invoke(Method.java:507)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at dalvik.system.NativeStart.main(Native Method)
11-24 18:01:25.630: E/AndroidRuntime(3505): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class android.support.v4.view.PagerTabStrip
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView(ActionBarSherlockCompat.java:853)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:262)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at com.example.pagetabswipe.MainActivity.onCreate(MainActivity.java:14)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1660)
11-24 18:01:25.630: E/AndroidRuntime(3505):     ... 11 more
11-24 18:01:25.630: E/AndroidRuntime(3505): Caused by: java.lang.ClassNotFoundException: android.support.v4.view.PagerTabStrip in loader dalvik.system.PathClassLoader[/data/app/com.example.pagetabswipe-2.apk]
11-24 18:01:25.630: E/AndroidRuntime(3505):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.view.LayoutInflater.createView(LayoutInflater.java:471)
11-24 18:01:25.630: E/AndroidRuntime(3505):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
11-24 18:01:25.630: E/AndroidRuntime(3505):     ... 20 more

どんな助けでも素晴らしいでしょう。この問題を解決するためにどこを見ればよいかわかりません。PagerTabStripがサポートライブラリで見つからないという非常に基本的なことを見逃しているように感じます。

4

1 に答える 1

9

私にとって、これは、基盤となるactionbarsherlockライブラリが古いバージョンのサポートライブラリを持っていることが原因でした。

Eclipseから、actionbarsherlockライブラリプロジェクトのビルドパスからAndroidサポートライブラリを削除しました。

それから私はここのアドバイスに従いました、PagerTabStripはタイプに解決できません

プロジェクトを右クリックします。

「Androidツール」->「サポートライブラリの追加」をクリックします

その後、android-support.jarをダウンロードします。それをプロジェクトに追加します。

その後、日食はPagerTabStripを認識します

于 2013-03-23T03:42:44.717 に答える