Как добавить кнопку в Android? - PullRequest
19 голосов
/ 21 апреля 2010

Кто-нибудь может подсказать как добавить кнопку в андроид?

Ответы [ 4 ]

14 голосов
/ 21 апреля 2010

Отметьте это Кнопка Android учебник; этот простой пример создает кнопку закрытия.

Все, что вам нужно сделать, это:

1.Добавить виджет кнопки в свой макет

<Button android:id="@+id/close"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:text="@string/title_close" />

2. Присоедините метод setOnClickListener к экземпляру кнопки:

protected void onCreate(Bundle savedInstanceState) {
  this.setContentView(R.layout.layoutxml);
  this.closeButton = (Button)this.findViewById(R.id.close);
  this.closeButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
      finish();
    }
  });
}
6 голосов
/ 24 апреля 2013

Динамический:

Button btn= new Button(this);  
btn.settext("Submit");  
btn.setOnClickListener(new View.OnClickListener()   
{
    public void onClick(View view) 
     {
           //your write code
       }
});
2 голосов
/ 31 июля 2017

Добавление кнопки

Button b1=(Button) findViewById(R.id.button1);

не добавляет кнопку. Он объявляет и инициализирует экземпляр Button, который ссылается на Button в текущем раздувшемся xml, который имеет идентификатор button1

.

Так что в вашем xml у вас будет где-то

<Button
 android:id="@+id/button1"
  <!-- other properties -->
 />

Вы можете добавить кнопку программно с помощью

Button bt1 = new Button(this);
// give it properties

Но, как правило, это проще сделать в xml, потому что здесь вам нужно программно задать параметры, свойства и добавить его в раздутый макет

OnClick

Насколько onClick () зависит от того, что, по вашему мнению, является самым простым и лучшим в вашей ситуации. Мне нравится часто объявлять это в xml, но вы можете сделать это несколькими способами. Используя этот метод, вы просто должны быть уверены, что у вас есть такая функция, которая является публичной и принимает только один параметр, и этот параметр должен быть View

 public void clickEvent(View v)
{
      // code here
   }

Я также изменил имя, чтобы ваш xml был похож на

<Button
 android:id="@+id/button1"
 <!-- other properties -->
 android:onClick="clickEvent"/>

Вы также можете установить onClick () в вашей Java с чем-то вроде

Button b1=(Button) findViewById(R.id.button1);
    b1.setOnClickListener(new OnClickListener()
 {
   @Override
public void onClick(View v)
{
    // code here
}
});

или

Button b1=(Button) findViewById(R.id.button1);
 b1.setOnClickListener(this);

@Override
public void onClick(View v)
{
    // code here
}

Обратите внимание, что последний способ, которым вам нужно будет добавить, реализует OnClickListener в вашем объявлении об активности

public class MyActivity extends Activity implements OnClickListener
   {

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

b1.setOnClickListener(myBtnClick);

затем создайте его экземпляр с чем-то вроде

public OnClickListener myBtnClick = new OnClickListener()
{
@Override
public void onClick(View v)
{
    // click code here      
}
   };

Вы можете использовать это для нескольких кнопок и включить идентификатор или проверить параметр View, чтобы узнать, какая кнопка была нажата, или создать отдельных прослушивателей для разных кнопок.

1 голос
/ 31 июля 2017

Согласно официальной документации Кнопки предоставлены Android. Сначала вы можете создать кнопку в вашем файле .xml.

Button.xml

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_text"
... />

А затем наведите свою кнопку на Button Class и установите ClickListener.

Button button = (Button) findViewById(R.id.button_send);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
    // Do something in response to button click
}
  });

Для получения более подробной информации вы можете посетить эту ссылку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...