0

あるアクティビティからテキストビューの値を他のアクティビティに渡す方法は?

テキストビューに表示されるゲームのスコアがあり、インクリメントした後、次のアクティビティに進みます。ただし、最初のアクティビティのスコアの値は、2 番目のアクティビティのテキストビューには表示されません。

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

final TextView score2 = (TextView) findViewById(R.id.tvscore2);
    Button page1 = (Button) findViewById(R.id.btnDog);
    page1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            EditText etDog1 = (EditText) findViewById(R.id.etDog);
            String Dog = etDog1.getText().toString();

            if (Dog.equalsIgnoreCase("dog")) {
                global.score += 10;


                score2.setText(String.valueOf(global.score));
                Toast.makeText(getApplicationContext(), "Correct",
                        Toast.LENGTH_SHORT).show();
                Intent myIntent = new Intent(view.getContext(),
                        sound1_3pig.class);

                startActivityForResult(myIntent, 0);

            } else if (global.score <= 0) {
                global.score += 0;
                score2.setText(String.valueOf(global.score));
                Toast.makeText(getApplicationContext(), "Wrong",
                        Toast.LENGTH_SHORT).show();
            } else {

                global.score -= 5;
                score2.setText(String.valueOf(global.score));
                Toast.makeText(getApplicationContext(), "Wrong",
                        Toast.LENGTH_SHORT).show();
            }
        }

    });

}

スコアアクティビティ1の結果をアクティビティ2のテキストビューに表示したい

これは私の2番目の活動です

final TextView score1 = (TextView) findViewById(R.id.tvscore1);
    Button page1 = (Button) findViewById(R.id.btnCat);
    page1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            EditText etCat = (EditText) findViewById(R.id.etCat);
            String Cat = etCat.getText().toString();
            if (Cat.equalsIgnoreCase("cat")) {

                global.score += 10;
                score2.setText(String.valueOf(global.score));

                Toast.makeText(getApplicationContext(), "Correct",
                        Toast.LENGTH_SHORT).show();

                Intent myIntent = new Intent(view.getContext(),
                        sound1_3pig.class);
                startActivityForResult(myIntent, 0);
                finish();

            } else if (global.score <= 0) {
                global.score += 0;
                score2.setText(String.valueOf(global.score));
                Toast.makeText(getApplicationContext(), "Wrong",
                        Toast.LENGTH_SHORT).show();

            } else {
                global.score -= 5;
                score2.setText(String.valueOf(global.score));
                Toast.makeText(getApplicationContext(), "Wrong",
                        Toast.LENGTH_SHORT).show();
            }

        }
    });

}
4

3 に答える 3

1

2番目のアクティビティが新しいレイアウトを拡張するときに、最初のアクティビティから2番目のアクティビティに値を明示的に渡し、この値を使用してTextViewを初期化する必要があります。

アクティビティ1:

void goToSecondActivity() {
    String value = mTextView.getText();
    Intent in = new Intent(getActivity(), YourSecondClass.class);
    in.putExtra("score", value);
    startActivity(in);
}

アクティビティ2:

void onCreate(Bundle bundle) {
    ...
    String score = getIntent().getStringExtra("score", "No score.");
    mTextView.setText(score);
}
于 2013-02-06T14:38:21.933 に答える
1

このようなものを使用してください。

アクティビティ 1:

Intent i = new Intent(getActivity(), Activity2.class);
i.putExtra("Score", 20);

startActivity(i);

アクティビティ 2:

Intent i = getIntent();
int score = i.getIntExtra("Score", 0);
于 2013-02-06T14:35:45.213 に答える
0

私の答えも他の人が提案したものと似ています。これを試してみてください。コード内にいくつかのステートメントを追加しました(変数の値をscore次のアクティビティに送信したいと思います。送信したい変数に置き換えることができます):

最初の活動:

score2.setText(String.valueOf(score));
Toast.makeText(getApplicationContext(), "Correct",
             Toast.LENGTH_SHORT).show();
Intent myIntent = new Intent(this,
                    sound1_3pig.class);
myIntent.putExtra("Score", global.score);
startActivityForResult(myIntent, 0);

2番目のアクティビティ:

これを2番目のアクティビティのonCreate()メソッドに入れます。

Intent intent = getIntent();
int score = intent.getIntExtra("Score",0);

これで、2番目のアクティビティの前のアクティビティからスコアの値を取得できます。次に、を呼び出して、表示するtextViewに設定できます。

textView.setText(score);
于 2013-02-06T16:01:27.287 に答える