2

私は Android 開発の完全な初心者であり、実際のクイズ アプリケーションを作成することで上達したいと考えています。非常に高度な質問がいくつかあります。

  1. 1 つのクイズ画面には、1 つの質問と 5 つの回答があります。これは、1 つのアクティビティを使用して作成されます。ここで、ユーザーが次の質問などである次の画面に移動するようにします。

  2. 質問ごとに新しいアクティビティを作成しますか、それとも同じアクティビティを使用してコンテンツを切り替えますか? どうすればいいですか?

コンテンツ リソースは XML フィードです。ユーザーが質問画面から質問画面に移動できるようにするにはどうすればよいでしょうか。

4

5 に答える 5

3

他のアクティビティを作成する必要はありません。次のボタンのクリックでビューの内容を変更するだけです。

に質問を表示していると仮定しTextView、次のクリックイベントでそのテキストを変更するだけです。回答についても同様です。

于 2013-03-11T11:00:16.707 に答える
1

フラグメントアプローチを使用することをお勧めします

于 2013-03-11T11:00:29.517 に答える
1

あなたが説明した特定の例に対して複数のアクティビティを行う理由はまったくありません。

質問の長さと回答の長さ (および回答の数) に特定の制限がある場合は、それらTextViewを入力する準備ができている単一の xml をレイアウトし、質問から質問に移動するときに値を動的に入力できます。さらにおしゃれにしたい場合はViewFlipper、実行時にそのレイアウトをフリッパーに追加してインフレートし、アニメーションを追加して、ユーザーが質問から質問へと移動するときに、より流動的なエクスペリエンスを得ることができます。

この質問は少し広すぎると思います。実際にアプリのコーディングを開始し、問題が発生した場合はより具体的な質問をする必要があります (そうでない場合もあります)。

于 2013-03-11T11:01:27.447 に答える
1

異なる質問を表すために複数のアクティビティを使用しないでください。

main.xml レイアウトで

<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/linear_Layout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
        </LinearLayout>
    </LinearLayout>

表現したいビューを膨らませて、この LinearLayout に追加するだけです。1 つの質問に答えたら、膨張したビューを削除し、新しいビューを再び膨張させます。

LayoutInflater mInflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        View view= (View) mInflater.inflate(R.layout.question1, null);
        LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
        p.setMargins(5, 5, 5, 5);
        layout.setGravity(Gravity.CENTER_HORIZONTAL);
        layout.addView(view, p);

[次の質問のアクティビティ クラス] ボタンをクリックします。

このようにしてください /** 膨らませたすべてのビューが削除されます。

layout.removeAllViews();

これは良い習慣です。

于 2013-03-11T11:09:20.467 に答える
0

新しいアクティビティを作成する必要はありません。ページの内容を変更するだけです。

于 2013-03-11T11:01:22.123 に答える