2012-05-07 4 views
4

まあ私はAndroid Fragmentsを理解し始めていますが、これはまだ私にとっては混乱しています。私は少し助けが必要です。アンドロイドの断片はAPIレベル11以降でサポートされていますが、より低いレベルのAPI用には "support.v4"ライブラリパックをダウンロードできます。まず最初に、APIレベル15でフラグメントを試すための新しいプロジェクトを作成します。それから、APIレベル8で同じことをしましたが、うまくいきません...外付けのjarファイルをインポートしました。ここで問題になりますか?ここで下位APIのAndroidフラグメント

は私のメインクラスです:

import android.support.v4.app.FragmentActivity; 
import android.os.Bundle; 

public class Fragment2Activity extends FragmentActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 

私の主なレイアウトXML:

<?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" > 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" /> 

     <fragment 
    android:name="com.frag.Fragment2.frag" 
    android:id="@+id/frag" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

</LinearLayout> 

マイフラグメントクラス:

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class frag extends Fragment { 
     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
      // Inflate the layout for this fragment 
      View v = inflater.inflate(R.layout.hello_fragment, container, false); 
      return v; 
     } 
    } 

そして、私のフラグメントレイアウトXML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 
    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:text="THIS IS FRAGMENT" 
    android:background="@drawable/ic_launcher" 
/> 

</LinearLayout> 

FIXED

+1

これは役に立ちましたか?私は同じ問題を抱えています、あなたの修正は何ですか? – MikeIsrael

答えて

6

あなたはまだ存在しませんandroid.view.fragmentクラスを使用しています。古いデバイスではandroid.support.v4.app.fragmentに切り替える必要があります。

+1

実際には 'android.support.v4.app.Fragment'と私はそれを使用しています;/ –

+0

どうやらどこにでもありません: 'ClassNotFoundException:android.view.fragment' – Jave

+0

これは私のフラグメントクラスのインポートです...;/ ' import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view。ViewGroup; ' –

0

minSdkVersionのために低いAPIを使用している場合は、最新のsdkを使用してminSdkVersionを低い値に設定できることがわかります。彼らは同じである必要はありません。

+0

これを実行するとまだ実行できませんアンドロイドエミュレータ2.2では、私はまだ4.0.3でも可能です。マニフェスト '

0

私は同じ問題を抱えていました。まず、最新のADTツールがあることを確認してください。あなたは、ビルドにサポートライブラリをインポートしていない場合は

1)を右クリックし、)断片を使用するすべてのアクティビティに移動し、それらをActivity

2の代わりにFragmentActivityから伸びてきたあなたのプロジェクト - > Androidの[ツール] - >タグは、<fragment />とあなたを助けない<android.support.v4.app.fragment />

希望している、それが働いて得るために私にしばらく時間がかかった、あなたのXMLで確認してください)

3サポートライブラリ

を追加します。

0

実際、この問題はADTツールの問題です。

  1. 再オーダーJavaで "注文およびエクスポートは、" SRC>世代>プライベート>その他...

  2. 追加サポートライブラリ>>アンドロイド・サポート・v4.jar

    でパスを構築します
関連する問題