Как получить значение нажатой кнопки? - PullRequest
2 голосов
/ 14 апреля 2011

Я ищу решение, как получить значение нажатой кнопки.

Когда я пытаюсь что-то вроде этого:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button numb1 = ((Button)this.findViewById(R.id.numb1)); 
    numb1.setOnClickListener(this);
}

public void onClickHandler(View v){
    String pressed = null;

    switch (v.getId()) {
        case R.id.numb1: 
            pressed=numb1.getText().toString();
            break;
            //OR
        case R.id.numb1: 
            pressed=R.id.numb1.getText().toString();
            break;  
     }

    new AlertDialog.Builder(this).setTitle("Info").setMessage(pressed).setNeutralButton("Okey", null).show();       
}

Оба случая в коммутаторе, к сожалению, плохие.

И я до сих пор не могу получить значение нажатой кнопки ... Не могли бы вы помочь мне с этой проблемой, пожалуйста?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 31 мая 2013

Ну, ребята, я довольно новичок в этой области, но я решил эту проблему следующим образом:

public void onClick(View view) {
      int intID = view.getId();
      Button button = (Button) findViewById(intID);
      String message = button.getText().toString();
}
4 голосов
/ 14 апреля 2011

pressed=((Button)v).getText(); должен выполнить эту работу.

Кроме того, позвольте вашей деятельности реализовать View.OnClickListener и вместо onClickHandler () переопределить метод public void onClickHandler(View v) вашей реализацией.

0 голосов
/ 14 апреля 2011

Глядя на ваш код, возможно ли, что у вас есть две переменные с одинаковыми именами, но с разными областями действия, которые вызывают у вас путаницу?

В onCreate вы объявляете Button numb1, но onClickHandler, похоже, ожидает, что numb1 также будет объявлено вне onCreate. Так что, onCreate следует просто присвоить значение numb1, вместо того, чтобы объявлять его?

Во всяком случае, если вы опубликуете более полный пример кода, это может помочь другим определить проблему, а не просто догадываться о том, как обстоят дела.

0 голосов
/ 14 апреля 2011

попробуйте это.

Button sender = (Button)v;
sender.text;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...