1

ここでの問題は、ボタンをクリックした後にボタンの新しい画像を表示する方法ですが、条件は他のクラスのものです。私はここの初心者で、クラスを他のクラスから接続する方法を知りたいです。私はインテントを試しました...

これが私のコードです

これは私たちの質問のクラスです...

@Override
// TODO Auto-generated method stub
public void onClick(View v) {
    String answer = "Marianas Trench";
    String answer2 = "marianas trench";
    String answer3 = "MARIANAS TRENCH";

    String check = input.getText().toString();
    if (check.contentEquals(answer)){
        tvresult.setText("Correct");
        Intent myIntent= new Intent("com.turtleexploration.LEVEL1");
        startActivity(myIntent);
    }else if (check.contentEquals(answer2)){
        tvresult.setText("Correct");
        Intent myIntent= new Intent("com.turtleexploration.LEVEL1");
        startActivity(myIntent);
    }else if (check.contentEquals(answer3)){
        tvresult.setText("Correct");
        Intent myIntent = new Intent("com.turtleexploration.LEVEL1");
        startActivity(myIntent);
    }else{
        tvresult.setText("Wrong");
    }

    Intent intObj = new Intent(Question.this, Level1.class);
    intObj.putExtra("ANSWER", answer);
    startActivity(intObj);          
}

そして、これは質問選択クラスです..

ImageButton l1 = (ImageButton) findViewById(R.id.l1);
    TextView t1 = (TextView) findViewById(R.id.t1);
    Intent intename = getIntent();
    String mainans = "Marianas Trench";
    String ans = (String) intename.getSerializableExtra("ANSWER");
    if (ans == mainans){
        l1.getBackground().equals(getResources().getDrawable(R.drawable.m1));
        t1.setText("Correct");
    }else{

    }

ボタンは質問選択メニューにあります...

4

1 に答える 1

0

データを運ぶバンドルを使用していないようです。意図は次のアクティビティのみを呼び出します。バンドルを含める必要があります。

お気に入り:

Bundle b = new Bundle();
b.putString("ANSWER", answer);

Intent intObj = new Intent(Question.this, Level1.class);
b.putExtras(b);
startActivity(intObj);

そして次のクラスで。これを使用して、渡されたデータを取得します。

    Bundle b = new Bundle();

    b = getIntent().getExtras();
   String Gotanswer = b.getString("ANSWER");

文字列Gotanswerを使用して使用します。

しかし、もう1つ、文字列ANSWERを次のクラスに渡したい場合、このコードでは不可能です。すべての条件内に、次のような次のクラスを開始する行があるためです。

Intent myIntent = new Intent("com.turtleexploration.LEVEL1");
        startActivity(myIntent);

intObjこれを行うと、以下のコードを通過せずに次のクラスが開始されます。これは私が間違っていない場合です。:)

さらに、 を使用する代わりに、この種のIf-Else-If場合switchははるかに優れています。

この回答が表示されたら、問題をさらに説明してください。

Kaya yan pre! haha
于 2013-03-02T15:05:41.270 に答える