Сделать кнопку в main.xml

1

я хочу просто сделать этот код, у меня есть одна кнопка, но когда я нажимаю эту кнопку, я хочу запустить таймер.. и каждый таймер запишет его кнопкой в 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();
    }
});
}
  • 0
    Можете ли вы объяснить вопрос ясно? что вы пытаетесь спросить "и каждый тик таймер делает кнопку в main.xml" ???
  • 0
    Я имею в виду, что в таймере я хочу добавить новую кнопку ... поэтому, если у меня есть новый таймер обратного отсчета (10000,1000), то у меня будет 10 кнопок в main.xml ..help
Теги:
timer
button
layout

2 ответа

0
Лучший ответ

попробуйте этот способ для динамического добавления кнопки с действием на 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" >
.....
  • 0
    в чем дело? К сожалению, программа была остановлена // это мой код для отметки таймера LinearLayout linearLayout = (LinearLayout) findViewById (R.layout.main); Кнопка btn = новая кнопка (NyaActivity.this); btn.setId (I + 1); linearLayout.addView (БТН); btn.setText ( "Кнопка" + (г + 1));
  • 0
    обновите ваш пост с помощью последнего кода и трассировки стека log-cat. тогда я помогу вам
Показать ещё 6 комментариев
0

Создайте 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);
  • 0
    как связать main.xml сэр?
  • 0
    Bundle? Что ты имеешь в виду под этим?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню