Как применять действие к ImageButton в Android?

Здесь - мой код класса Java

public void onClick(View v) {
        ImageButton btn_paradas = (ImageButton) findViewById(R.id.btn_paradas);
        ImageButton btn_ubicar = (ImageButton) findViewById(R.id.btn_ubicar);
        ImageButton btn_calcular = (ImageButton) findViewById(R.id.btn_calcular);
        ImageButton btn_tareas = (ImageButton) findViewById(R.id.btn_tareas);
        ImageButton btn_ayudas = (ImageButton) findViewById(R.id.btn_ayuda);


        if (btn_paradas.isSelected()) {
            Toast.makeText(this,"paradas",Toast.LENGTH_LONG).show();
        }
        if (btn_ubicar.isSelected()) {
            Toast.makeText(this,"ubicar",Toast.LENGTH_LONG).show();
        }
        if (btn_calcular.isSelected()) {
            Toast.makeText(this,"calcular",Toast.LENGTH_LONG).show();
        }
        if (btn_tareas.isSelected()) {
            Toast.makeText(this,"tareas",Toast.LENGTH_LONG).show();
        } if (btn_ayudas.isSelected()) {
            Toast.makeText(this,"ayuda",Toast.LENGTH_LONG).show();
        }


    }

Здесь - код моего layout

<ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn_ayuda"
        android:layout_gravity="center_horizontal"
        android:src="@drawable/opcion5"
        android:clickable="true"
        android:onClick="onClick"/>

Заметь: Не выходит никакое сообщение, когда уже я это выполняю, и не, которому проистекает эта маленькая ошибка

1
задан 14.04.2017, 12:04
1 ответ

Поскольку я вижу твоего кода, ты используешь implements View.OnClickListener в тебе activity, так что для того, чтобы действия твой ImageButton функционируйте ты должен исправлять твой код следующего способа:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    // Define tus objetos aquí, al iniciar la clase
    ImageButton btn_paradas;
    ImageButton btn_ubicar;
    ImageButton btn_calcular;
    ImageButton btn_tareas;
    ImageButton btn_ayudas;

    // Luego, en el método onCreate "buscas/inicializas/encuentras" los objetos anteriores y les dices que serán escuchados en esta misma clase bajo el método onClick
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        btn_paradas = (ImageButton) findViewById(R.id.btn_paradas);
        btn_paradas.setOnClickListener(this);
        btn_ubicar = (ImageButton) findViewById(R.id.btn_ubicar);
        btn_ubicar.setOnClickListener(this);
        btn_calcular = (ImageButton) findViewById(R.id.btn_calcular);
        btn_calcular.setOnClickListener(this);
        btn_tareas = (ImageButton) findViewById(R.id.btn_tareas);
        btn_tareas.setOnClickListener(this);
        btn_ayudas = (ImageButton) findViewById(R.id.btn_ayuda);
        btn_ayudas.setOnClickListener(this);
    }

    // Ahora para controlar las acciones que buscas a tus objetos nos venimos al método en donde tu tienes todo escrito
    @Override
    public void onClick(View view){
        switch (view.getId()){ // <- Le damos un switch al elemento el cual fue clickeado y lo comparamos para ver que sea el que queremos
            case R.id.btn_paradas:
                Toast.makeText(this,"paradas",Toast.LENGTH_LONG).show();
            break;
            case R.id.btn_ubicar:
                Toast.makeText(this,"ubicar",Toast.LENGTH_LONG).show();
            break;
            case R.id.btn_calcular:
                Toast.makeText(this,"calcular",Toast.LENGTH_LONG).show();
            break;
            case R.id.btn_tareas:
                Toast.makeText(this,"tareas",Toast.LENGTH_LONG).show();
            break;
            case R.id.btn_ayuda:
                Toast.makeText(this,"ayuda",Toast.LENGTH_LONG).show();
            break; 
        }
    }
}

Я издаю, перемести эту линию тебя layout xml так как может вызывать тебя какой-то конфликт:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/btn_ayuda"
    android:layout_gravity="center_horizontal"
    android:src="@drawable/opcion5"
    android:clickable="true"
    android:onClick="onClick"/> <!- <- Eliminar esta línea de código -->
2
ответ дан 24.11.2019, 12:38

Теги

Похожие вопросы