0

ラジオボタンとチェックボックスを使用してさまざまなものから選択できるアプリケーションを作成しています。では、選択したデータを別のアクティビティに表示する方法を知りたいのですが。

これはあなたが欲しいコーヒーを選ぶクラスです。

    package com.coffee2go.coffee2go;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class coffee2 extends Activity {


    private RadioGroup choosecoffee;
    private Button order;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.coffee2);

        choosecoffee = (RadioGroup) findViewById(R.id.choosetypeofcoffee);
        order = (Button) findViewById(R.id.order_coffee);

        addListenerOnButton();

    }

    private void addListenerOnButton() {
        // TODO Auto-generated method stub

        order.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                startActivity(new Intent(coffee2.this, order.class));

            }
        });

        choosecoffee.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                startActivity(new Intent(coffee2.this, order.class));
            }
        });

    }
}'

情報を表示したいクラスです。情報は、Webサーバー000webhost.comのmySQLデータベースにも保存する必要があります。

    'package com.coffee2go.coffee2go;

import android.app.Activity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class order extends Activity {
    private RadioGroup choosecoffee;
    private RadioButton bryggkaffe, latte, espresso;

    private RadioGroup sizeofcoffee;
    private RadioButton small, big;

    private CheckBox sugar, milk;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.order);

        TextView orderlist = (TextView) findViewById(R.id.orderlist);
        TextView pricelist = (TextView) findViewById(R.id.pricelist);
        choosecoffee = (RadioGroup) findViewById(R.id.choosetypeofcoffee);
        bryggkaffe = (RadioButton) findViewById(R.id.bryggkaffe);
        latte = (RadioButton) findViewById(R.id.latte);
        espresso = (RadioButton) findViewById(R.id.espresso);

        sizeofcoffee = (RadioGroup) findViewById(R.id.choosecoffeesize);
        small = (RadioButton) findViewById(R.id.small);
        big = (RadioButton) findViewById(R.id.big);

        sugar = (CheckBox) findViewById(R.id.sugar);
        milk = (CheckBox) findViewById(R.id.milk);

        if (bryggkaffe.isChecked() == true) {
            orderlist.append("Bryggkaffe\n");

        }
        if (latte.isChecked() == true) {
            orderlist.append("Latte\n");
        }

        if (espresso.isChecked() == true) {
            orderlist.append("Espresso\n");
        }
        if (small.isChecked() == true) {
            orderlist.append("Liten\n");
        }

        if (big.isChecked() == true) {
            orderlist.append("Stor\n");
        }

        if (sugar.isChecked() == true) {
            orderlist.append("Socker\n");
        }

        if (milk.isChecked() == true) {
            orderlist.append("Mjölk\n");

        }

    }'

これを作る方法はありますか?接続クラスとphpも作成する必要がありますか?

4

2 に答える 2

0

Intent でデータを渡して、2 番目のアクティビティを作成できます。

最初のアクティビティから呼び出すものは次のとおりです。

Intent orderIntent = new Intent(coffee2.this, order.class)); 
orderIntent.putExtra("CoffeeType", someVariableThatHoldsCoffeeType);
startActivity(orderIntent);

2 番目のアクティビティ (Order) では、onCreate(...) メソッドの Intent から Coffee タイプを取得できます。

Intent callingActivityIntent =getIntent();
String coffeeType=sender.getExtras().getString("CoffeeType");
//Do something with the coffeeType variable
...

最初から最後までデータを渡す方法のチュートリアルは次のとおりです

于 2012-05-10T16:04:57.157 に答える
0

Gophermofer は正しい考えを持っていますが、アプリは次のように実行されるようですcoffee2-> order-> coffee2。したがって、クラスを startActivity() で起動するのではなくorder、同じ Intent を startActivityForResult() に渡す必要があります。

startActivityForResult(new Intent(coffee2.this, order.class), 1);

ユーザーが で注文を完了したら、次のorderように setResult() を使用します。

Intent intent = new Intent();
intent.putExtra("Order", orderlist.getText().toString());
... // continue this for everything you want to pass back
setResult(10, intent);
finish();

coffee2onActivityResult() 関数のセットアップに戻ります。

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == 1 && resultCode == 10) {
        String orderlist = data.getString("Order");
        // Process the order
    }
}

出来上がり!activityとの間で情報の受け渡し。

于 2012-05-10T16:20:28.807 に答える