Usar “View” para saber que boton ha sido presionado

tengo una duda, puedo usar view para saber que boton se uso, estoy armando una calculadora y para ahorrar codigo quiero usar un solo metodo que pueda ser usado por todos los botones numericos, pero para hacer eso, primeramente tengo saber que boton fue presionado, se que debe ser con view

public void bunton(View view){
    String boton=view //quiero saber que boton me presiono
}
1
задан 13.10.2016, 09:52
3 ответа

Вот то, что ты говоришь. Когда ты поверишь botГіn, ты это делаешь в travГ©s из идентификации, когда envГ-схвати это в нее funciГіn-Гєnica - ты это возвращаешь используя ту же идентификацию, в этом случае в travГ©s ее funciГіn getId () каждого View.

Давайте Верить в listener:

View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
 public void onClick(View view) {
  pressed(view);
 }
};

мы это добавляем к кнопкам:

v.findViewById(R.id.boton_sumar).setOnClickListener(onClickListener);
v.findViewById(R.id.boton_restar).setOnClickListener(onClickListener);
//...y el resto de botones.

И в ней funciГіn:

private void pressed(View view){
 switch(view.getId()){
  case R.id.boton_sumar:
   //Lo que sea para sumar...
   break;
  case R.id.boton_restar:
   //Lo que sea para restar...
   break;
  case R.id.etc:
    break;
 }
}
2
ответ дан 24.11.2019, 13:07
  • 1
    очень хорошо, если я функционирую – Montero 13.10.2016, 06:13
  • 2
    Это versi и # 243; n определяя listener для bot и # 243; n, другая определяя м и # 233; совсем, который они нужно назвать с layout, (ответ @Juangra13) оба правильны, превосходный aportaci и # 243; n. – Jorgesys♦ 13.10.2016, 18:08

Есть что-то более простое и состоит в том, чтобы помещать в твой xml, внутри view, которые ты хочешь захватить, параметр, который android:onClick="nombre_funcion".

<View
     android:id="@+id/num_11"
     android:layout_width="30dp"
     android:layout_height="30dp"
     android:clickable="true"
     android:onClick="activateNum">

И в твоем одиноком activity ты создаешь следующую функцию:

 public void activateNum(View v)
 {
      switch(v.getId)
      {
            case R.id.boton_sumar:
              //Operación suma...
            break;
            case R.id.boton_restar:
              //Operación resta...
            break;
           case R.id.multiplicar:
              //Operación multiplicar...
           break;

      }
 }

Это самое простое, и где меньше ты пишешь код.

2
ответ дан 24.11.2019, 13:07
  • 1
    Это tambi и # 233; n он правилен, возможно он меньше c и # 243; я говорю, так как он не определяет listener для bot и # 243; n, но это Ваш versi и # 243; n включенная с вида в layout. – Jorgesys♦ 13.10.2016, 18:07

Скорее всего podrГ-схвати пытаться возвращаясь botГіn:

public string Button(View view)
{
   Strig boton = view;
   return boton;
}
0
ответ дан 24.11.2019, 13:07