Как определить ссылку на кнопку
В Java, после создания кнопки таким образом:
Button button1= new Button();
я могу определить ссылку на кнопку таким образом
public void actionPerformed(ActionEvent bottonName){
Button name_of_the_button= (Button)bottonName.getSource();
//Inside 'name_of_the_button' I have 'button1'
}
Как я могу сделать то же самое на Android? Я пробовал таким образом
public void onClick(View bottonName) {
Button name_of_the_button= (Button )bottonName.getSource();
}
Но на андроиде нет метода getSource().
6 ответов
Button name_of_the_button = (Button)findViewById(R.id.my_btn);
затем
name_of_the_button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == R.id.my_btn) {
// button action here
}
}
});
Вы можете проверить следующее:
Button button1= new Button();
button1.setOnClickListener(this);
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
if (view.getId() == button1.getId())
{
//Perform something
}
}
Таким образом, оба идентификатора будут сопоставлены (идентификатор нажатой кнопки и тот, который вы создали с помощью кода Java)
Создать кнопку, а затем добавить это main layout
как ребенок, то установить click listener
на этой кнопке
Button buyButton = new Button(this);
buyButton.setText(R.string.button_back);
buyButton.setLayoutParams(new LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
layout.addView(buyButton);
buyButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Do What you want on click
}});
В Android вид занимает прямоугольную область на экране и отвечает за рисование и обработку событий. Представление является базовым классом для виджетов, которые используются для создания интерактивных компонентов пользовательского интерфейса (кнопок, текстовых полей и т. Д.). Поэтому для вызова кнопки сначала необходимо объявить кнопку.
Button nameButton = (Button)findViewById(R.id.buttononyourXML);
ИЛИ вы можете создать это программно, используя
ViewGroup linearLayout = (ViewGroup) findViewById(R.id.yourLinear);
Button btn = new Button(this);
btn.setText("A Button");
btn.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
linerLayout.addView(btn);
Затем добавьте слушателя на основе вашего требуемого метода
Это твой выбор..
ура
Прежде всего, Android != Corejava
, Чтобы ваш метод работал, вам нужно определить onClick android:onClick = "buttonClick"
для вашей кнопки в XML.
Тогда ваш метод onClick будет
public void onClick(View view)
{
Button button = (Button)view; // here is the reference.
}
Button but1 = (Button)findViewById(R.id.button1); within the onCreate of your layout
сопровождаемый слушателем
but1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == R.id.but1) {
// your code here
}
}
});