Кнопка «Отключить», которая вызвала ActivityforResult - PullRequest
0 голосов
/ 29 апреля 2018

Мой код выглядит так: - Кнопка запускает одно действие на результат, что означает, что действие должно вернуть результат. - Когда действие заканчивается и возвращается к действию, в котором была нажата кнопка, я хочу отключить эту кнопку.

Я создал кнопки динамически, поэтому я должен использовать их через View v для метода onClick.

 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 голосов
/ 29 апреля 2018

Вы можете setEnabled(boolean value) кнопки на результат деятельности. Для более подробной информации откройте Ссылка на документацию по Android

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
           }
        }
    }
}
0 голосов
/ 29 апреля 2018

Сохраните ссылку на 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);
        }
    }
}
...