0

私はそれぞれ 10 個の値を持つ 2 つのスピナーを持っています。ユーザーが 2 つの値を選択すると、「YourPath」と呼ばれる別のアクティビティで特定の画像が返されます。

これが最初のアクティビティのコードです

private Spinner spinner1, spinner2;
private Button btnSubmit;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.locationlist);


    addListenerOnButton();
    addListenerOnSpinnerItemSelection();

}

public void addListenerOnSpinnerItemSelection() {
    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner2 = (Spinner) findViewById(R.id.spinner2);

}

public void addListenerOnButton() {

    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner2 = (Spinner) findViewById(R.id.spinner2);
    btnSubmit = (Button) findViewById(R.id.button1);

    btnSubmit.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {

            AlertDialog alertDialog = new AlertDialog.Builder(
                    LocationList.this).create(); // Read Update
            alertDialog.setTitle("Confirm Message");
            alertDialog.setMessage("You are in "
                    + String.valueOf(spinner1.getSelectedItem())
                    + "\nAnd You are going to "
                    + String.valueOf(spinner2.getSelectedItem()));

            alertDialog.setButton("Yes",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,
                                int which) {

                            launchIntent();

                        }
                    });

            alertDialog.setButton2("No",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,
                                int which) {

                        }
                    });

            alertDialog.show();
        }

        private void launchIntent() {
            Intent it = new Intent(LocationList.this, YourPath.class);
            it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(it);
        }

    });

}

}

それを行うにはデータベースが必要ですか!!!

どうすればそれができるかについてのアイデアはありますか!!!!

ありがとう

4

1 に答える 1

0

データベースは必ずしも必要ではありません。実際、唯一の理由は、ユーザーが「あなたのパス」にたどり着く可能性のある画像を動的に変更したい場合です。

アプリの作成中にすべての画像を提供できる場合は、それらをすべて /Drawable フォルダーに配置するだけで、YourPath アクティビティで目的の画像にアクセスできます。

これらの値を取得して変数に入れて、次のように使用します。

String value1 = spinner1.getSelectedItem().toString();
String value2 = spinner2.getSelectedItem().toString();

次に、YourPath アクティビティに送信するインテントにいくつかの文字列値を貼り付けます。次のように launchIntent メソッドでそれを行います。

private void launchIntent() {
        Intent it = new Intent(LocationList.this, YourPath.class);
        it.putExtra("value1", value1);
        it.putExtra("value2", value2);
        startActivity(it);
    }

次に、YourPath クラスで、次のようにこれらの値を取得します。

Intent i = getIntent();
Bundle extras = i.getExtras();

String value1 = extras.getString("value1");
String value2 = extras.getString("value2");

次に、if-else (またはできれば switch) ステートメントを実行して、表示する画像を特定します。

if(value1.equals("somevalue") && value2.equals("othervalue")){
    int imageResource = R.drawable.mypic;

    ImageView imageView = (ImageView) findViewById(R.id.myImageView);
    Drawable image = getResources().getDrawable(imageResource);
    imageView.setImageDrawable(image);
}

次に、 my_path レイアウト ファイルを res/layout フォルダーに追加します。

<?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" >
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/myImageView"
    ></ImageView>
</LinearLayout>

myPath アクティビティで画像ビューにアクセスできるようになりましたが、コンテンツ ビューを設定することを忘れないでください。

setContentView(R.layout.my_path);
于 2012-11-13T18:21:12.493 に答える