я хочу просто сделать этот код, у меня есть одна кнопка, но когда я нажимаю эту кнопку, я хочу запустить таймер.. и каждый таймер запишет его кнопкой в main.xml.. как я могу это сделать? пожалуйста, помогите мне сэр!
Button a = (Button) findViewById(R.id.button1);
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new CountDownTimer(5000,1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
//how to create a button here!
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
}
}.start();
}
});
Я пробую это.. но эти слова появляются, когда я нажимаю кнопку ("К сожалению, программа была остановлена")
final int i=1;
Button a = (Button) findViewById(R.id.button1);
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new CountDownTimer(5000,1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
//how to create a button here!
LinearLayout linearLayout = (LinearLayout) findViewById(R.layout.main);
Button btn = new Button(NyaActivity.this);
btn.setId(i+1);
linearLayout.addView(btn);
btn.setText("Button"+(i+1));
final int index = i;
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("TAG", "The index is" + index);
}
});
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
}
}.start();
}
});
}
попробуйте этот способ для динамического добавления кнопки с действием на CountDownTimer onTick:
int i=1;
Button a = (Button) findViewById(R.id.button1);
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new CountDownTimer(5000,1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
//how to create a button here!
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.mainlauoutid);
Button btn = new Button(Your_Current_Activity.this);
btn.setId(i+1);
btn.setText("Button"+(i+1));
btn.setLayoutParams(lprams);
final int index = i;
btn.setOnClickListener(new OnClickListener() {
void onClick(View v) {
Log.i("TAG", "The index is" + index);
}
});
linearLayout.addView(btn);
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
}
}.start();
}
});
и ваш макет выглядит так:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/mainlauoutid"
android:orientation="vertical" >
.....
Создайте LinearLayout в вашем main.xml и найдите его перед a.setOnClickListener, используя:
final LinearLayout layout = (LinearLayout) findViewById(R.id.layoutId);
Затем в вызове onTick():
Button newBtn = new Button(YourActivity.this);
newBtn.setText("new button");
layout.addView(newBtn);