我怎么知道第一次活动触摸了哪个按钮?

时间:2015-02-26 23:06:59

标签: android android-intent android-activity onclick boolean

我有几个按钮让我参加同样的活动。我会根据触摸的按钮(来自上一个活动)增加特定的计数器。如何在不给出错误的情况下知道触摸了哪个按钮: 只有两个按钮的示例代码。活动A:

btnSi.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            sumarSi=true;
            Intent aSiguiente = new Intent(Peliculas.this, ResultadosSiguientes.class);
            aSiguiente.putExtra("sumarSi", sumarSi);
            startActivity(aSiguiente);
            Peliculas.this.finish(); 
        }
    });

    btnNo.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            sumarNo=true;
            Intent aSiguiente = new Intent(Peliculas.this, ResultadosSiguientes.class);
            aSiguiente.putExtra("sumarNo", sumarNo);
            startActivity(aSiguiente);
            Peliculas.this.finish(); 
        }
    });

活动B(Oncreate):

Bundle extras = getIntent().getExtras();

        Boolean r1 = extras.getBoolean("sumarSi");
        if(r1==true){
            rdo1++;
        }
        Boolean r2 = extras.getBoolean("sumarNo");
        if(r2==true){
            rdo2++;
        }

这给了我错误,因为当我播放btnSi按钮并转到活动B时,extras.getBoolean(" sumarNo");失败,因为没有数据要接收。我怎么解决?

1 个答案:

答案 0 :(得分:1)

您选择错误的方式来标记单击了哪个按钮

btnSi.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        Intent aSiguiente = new Intent(Peliculas.this, ResultadosSiguientes.class);
        aSiguiente.putExtra("button", 1);
        startActivity(aSiguiente);
        Peliculas.this.finish(); 
    }
});

btnNo.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        Intent aSiguiente = new Intent(Peliculas.this, ResultadosSiguientes.class);
        aSiguiente.putExtra("button", 2);
        startActivity(aSiguiente);
        Peliculas.this.finish(); 
    }
});

在onCreate()方法的活动A中,改为:

    Bundle extras = getIntent().getExtras();

    int r = extras.getInt("button", -1);
    if(r==1){
        rdo1++;
    }
    if(r==2){
        rdo2++;
    }