0

こんにちは私はAndroid開発に不慣れです。

私はフラグメントを使用していますが、それがどのように機能するかを完全には理解していません。

アプリを起動するとクラッシュします。

私はたくさんググったが、大砲はこれを解決する:(

フラグメントを使用する必要があるActivity(MainActivity)があります。MainActivityは次のようになります。

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

また、main.xmlにはListViewとFragmentが含まれています。

<ListView 
    android:id="@+id/myListView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<fragment class="com.todolist.NewItemFragment"
    android:id="@+id/titles_fragment"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

私のフラグメントはListFragmentを拡張し、次のようになります。

public class NewItemFragment extends ListFragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.new_item_fragment, container, false);
    }
}

そして、new_item_fragment.xmlは次のようになります。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<ListView 
    android:id="@+id/myListView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

</LinearLayout>

なぜクラッシュするのかわかりません。私は何かを誤解したに違いありません。私はそこにいる誰かが助けてくれることを願っています-何をすべきかわからない:)

THX


ライブラリをインポートしました:

android.support.v4.app.FragmentActivity

そして、MainActivityクラスにFragmentActivityを拡張させました

次のエラーが発生します。

ここに画像の説明を入力してください

4

2 に答える 2

1

次のようにレイアウトファイルを変更しnew_item_fragment.xmlます。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<ListView 
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

</LinearLayout>

最も明白なエラーを解決します。Logcatそれでもアプリがクラッシュする場合は、例外を付けて投稿してください。

また、クラスを拡張するときは、SDKActivityの関連クラスのみを使用するようFragmentにしてください(アプリに登録している場合は互換性パッケージではありません)。このクラスは、から利用できますHoneycomb

使用する場合は、互換性パッケージのクラスFragmentActivityを使用していることを確認してください(ここから)。FragmentFragmentActivity

于 2012-12-03T12:36:13.750 に答える
0

次のコードでフラグメントを置き換えてみてください。

public class NewItemFragment extends ListFragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.new_item_fragment, null, false);
    }
}
于 2012-12-03T12:43:24.147 に答える