禁用触发ActivityforResult的按钮

时间:2018-04-29 16:29:30

标签: android button onclick onactivityresult

我的代码是这样的: - 按钮会在结果上触发一个活动,这意味着活动应该返回结果。 - 当活动完成并返回到单击按钮的活动时,我想禁用此按钮。

我动态创建了按钮,这就是我必须在onClick方法上通过View v使用它们的原因。

 public void onClick(View v) {
    b= (Button)v;

    Intent ir_a_emociones = new Intent(this,emociones_votar.class);
    ir_a_emociones.putExtra("alumno",alumno);
    ir_a_emociones.putExtra("asignatura",b.getText().toString());
    startActivityForResult(ir_a_emociones, 55);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 55) {
        if (resultCode == RESULT_OK) {
            Toast.makeText(this, "¡Gracias!", Toast.LENGTH_SHORT).show();
           ***--> here the button that triggered the intent should be disabled.***
        }
    }
}

有onclick和onActivityResult。我不知道如何重新按回按钮。 B是一个按钮,但据我所知,它只是让我在onClick中获取引用。

2 个答案:

答案 0 :(得分:0)

将b的引用保存为类的私有属性,然后使用onActivityResult中的属性:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 55) {
        if (resultCode == RESULT_OK) {
            Toast.makeText(this, "¡Gracias!", Toast.LENGTH_SHORT).show();
            if (b != null)
                b.setEnabled(false);
        }
    }
}

答案 1 :(得分:0)

您可以setEnabled(boolean value)点击活动结果。有关详细信息,请打开Android documentation link

private Button b;
// 
public void onClick(View v) {
    b= (Button)v;

    Intent ir_a_emociones = new Intent(this,emociones_votar.class);
    ir_a_emociones.putExtra("alumno",alumno);
    ir_a_emociones.putExtra("asignatura",b.getText().toString());
    startActivityForResult(ir_a_emociones, 55);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 55) {
        if (resultCode == RESULT_OK) {
            Toast.makeText(this, "¡Gracias!", Toast.LENGTH_SHORT).show();
           if(b!= null){
             b.setEnable(false) // false :: Disable button, true :: Enable button
           }
        }
    }
}