Android: при нажатии кнопки появляется тост - PullRequest
4 голосов
/ 20 ноября 2011

Я довольно новичок в Android и только знакомлюсь с общими вещами, но я не могу освоить onClickListner (); У меня в основном есть два флажка и кнопка, и при нажатии кнопки должен появиться тост и сказать, какие флажки отмечены, а какие нет.

public class ExActivity extends Activity implements View.OnClickListener {
    CheckBox cb;
    CheckBox cb2;
    Button buton;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        cb=(CheckBox) findViewById(R.id.cb);
        cb2=(CheckBox) findViewById(R.id.checkbox);
        buton = (Button)findViewById(R.id.buton);
        buton.setOnClickListener(this);
    }

    public void onClick(View arg0) {
        Toast toast;
        if(cb.isChecked()&&cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Amandoua sunt bifate", Toast.LENGTH_SHORT);
        else if(cb.isChecked()&&!cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Doar prima e bifata", Toast.LENGTH_SHORT);
        else if(!cb.isChecked()&&cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Doar a doua e bifata", Toast.LENGTH_SHORT);
        else if(!cb.isChecked()&&!cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Nici una nu e bifata", Toast.LENGTH_SHORT);
    }
}

Не обращайте внимания на имена и тексты румынских переменных, и с XML все в порядке. Я также попытался добавить onClick () так:

buton.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        // my code;
    }
});

но этот еще хуже. Помощь

Ответы [ 5 ]

6 голосов
/ 20 ноября 2011

Оба способа верны.Мне кажется, что вы просто не показали тост в конце.Может показаться, что onClick не был выполнен.

Добавление

if(toast != null) {
    toast.show();
}

в конец метода onClick () должно помочь.
(Нульпроверьте только на тот случай, если вы не создали экземпляр toast, потому что ранее условия не выполнялись) .

4 голосов
/ 20 ноября 2011

Вам нужно позвонить show(), чтобы появился тост:

Toast.makeText(getApplicationContext(), "text", Toast.LENGTH_SHORT).show();
1 голос
/ 20 ноября 2011

Предыдущие ответы верны, сообщая, что вы не вызываете show () метод Тоста.Вы также можете взглянуть на этот учебник , чтобы увидеть, как вы можете определить метод-обработчик для вашей кнопки в XML.Таким образом, код будет выглядеть понятнее, потому что вам не нужно явно реализовывать интерфейс onClickListener или устанавливать новую onClickListener для кнопки (это делается за кулисами).Вот простой пример (вы можете легко дополнить системные отпечатки методами "showToast"):

определение кнопки в xml:

      <Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:text="Click Me"
    android:onClick="buttonHandler" />

Класс активности

public class TwoCheckboxesActivity extends Activity {

    private CheckBox check1;
    private CheckBox check2;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        check1 = (CheckBox)findViewById(R.id.checkbox1);
        check2 = (CheckBox)findViewById(R.id.checkbox2);

    }

    public void buttonHandler(View view) { 
        System.out.println("Button Clicked"); 

        System.out.println(check1.isChecked());
        System.out.println(check2.isChecked()); 
    }
}
1 голос
/ 20 ноября 2011

вы просто забыли добавить .show () после вашего .makeText (context, text, duration)

, поэтому ваш код должен выглядеть так:

[...]
if(cb.isChecked()&&cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Amandoua sunt bifate", Toast.LENGTH_SHORT).show();
    else if(cb.isChecked()&&!cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Doar prima e bifata", Toast.LENGTH_SHORT).show();
    else if(!cb.isChecked()&&cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Doar a doua e bifata", Toast.LENGTH_SHORT).show();
    else if(!cb.isChecked()&&!cb2.isChecked()) toast = Toast.makeText(getApplicationContext(), "Nici una nu e bifata", Toast.LENGTH_SHORT).show();
[...]
0 голосов
/ 24 сентября 2016

Добавьте это в свой ресурс Java.

  public void toast(View v) {
  Toast.makeText(MainActivity.this, "Hey I'm a toast messsage",         
          Toast.LENGTH_LONG).show();

}

Затем этот код для добавления кнопки и ее реализации для отображения всплывающего сообщения в вашем ресурсе XML.

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Toast Button"
    android:id="@+id/button"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:onClick="toast" />

Надеюсь, это помогло,Счастливое кодирование

...