Я думаю, вы запутались. Примеры, которые вы приводите, это две разные вещи.
Добавление кнопки
Эта линия
Button b1=(Button) findViewById(R.id.button1);
не добавляет Button
. Он объявляет и инициализирует экземпляр Button
, который ссылается на Button
в вашем текущем раздутом xml, который имеет id
из button1
Итак, в вашем xml у вас будет где-то
<Button
android:id="@+id/button1"
<!-- other properties -->
/>
Вы можете добавить Button
программно с помощью
Button bt1 = new Button(this);
// give it properties
Но это вообще проще сделать в xml потому что тут надо программно задавать ему параметры, свойства и добавлять в надутый layout
По клику
Что касается onClick()
, это зависит от того, что вы считаете самым простым и лучшим в вашей ситуации. Мне нравится часто объявлять это в xml, но вы можете сделать это несколькими способами. Используя этот метод, вы просто должны быть уверены, что у вас есть такая функция, которая является public
и принимает только один параметр, и этот параметр должен быть 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
}
});
or
Button b1=(Button) findViewById(R.id.button1);
b1.setOnClickListener(this);
@Override
public void onClick(View v)
{
// code here
}
Обратите внимание, что в последнем случае вам нужно будет добавить implements OnClickListener
в объявление Activity
.
public class MyActivity extends Activity implements OnClickListener
{
Вы также можете создать свой собственный клик Listener
, изменив его на что-то вроде
b1.setOnClickListener(myBtnClick);
затем создайте его экземпляр с чем-то вроде
public OnClickListener myBtnClick = new OnClickListener()
{
@Override
public void onClick(View v)
{
// click code here
}
};
Вы можете использовать это для нескольких Button
и включить id
или проверить параметр View
, чтобы узнать, какой Button
был нажат, или создать отдельные Listeners
для разных Button
.
person
codeMagic
schedule
19.08.2013