0

クラスはgetExtraとputExtraを同時に持つことができますか?クラス1がデータをクラス2に渡すとします。クラス2はデータをクラス3に渡します。クラス2を機能させるにはどうすればよいですか?

クラス1

public static final String EXTRA_RADIO="com.example.flash.Mode";
int btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button bP= (Button)findViewById(R.id.btnP);
    Button bT= (Button)findViewById(R.id.btnP);
    final Intent intent = new Intent(Main.this, Mode.class);
    bP.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            //TODO Auto-generated method stub
            btn=1;
            intent.putExtra(EXTRA_RADIO, btn);
            startActivity(intent);
        }
    });
    bT.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
        //TODO Auto-generated method stub
        btn=2;
        intent.putExtra(EXTRA_RADIO, btn);
        startActivity(intent);
        }
    });
 }

クラス2

int mode;
int op;
public static final String EXTRA_OP = "com.example.flash.Operator";
public void onStart(){
    super.onStart();
    mode = getIntent().getIntExtra(Main.EXTRA_RADIO, 0);
    setContentView(R.layout.mode);
    if (mode==1){
        m.setText("Practice");
        ok.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                           //codes
                           op=1;
            }
        });
    }
    if (mode==2){
        m.setText("Trial");
        ok.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                             //codes
                             op=2;
            }
        });
    }
        Intent intent = new Intent(Mode.this, Operator.class);
        intent.putExtra(EXTRA_OP, op);
        startActivity(intent);
}

次に、クラス3はクラス2からopを取得します。私のクラス2は機能しません。

4

1 に答える 1

1

Class 2@Overrideの onStart に追加してみてください。

クラスは getExtra と putExtra を同時に持つことができますか?

はい。getExtraputExtraを別のに使用しているようですintent

于 2013-01-20T04:27:37.663 に答える