как дать идентификатор для Button By Dynamic Creations в Android? - PullRequest
1 голос
/ 27 августа 2011

Я пытаюсь создать кнопку динамически, а также я создал. Теперь я хочу написать функцию для события Click Так что мне нужен идентификатор для кнопки. Я не знаю, как создать идентификатор для кнопки динамически. Заранее спасибо Вот моя кодировка

        ScrollView sv = new ScrollView(this);
        LinearLayout ll = new LinearLayout(this);
        ll.setOrientation(LinearLayout.HORIZONTAL);
        sv.addView(ll);
        Button main=new Button(this);
        CharSequence value="Main +";
        main.setText(value);
        ll.addView(main);
           }
        this.setContentView(sv);
    }

Ответы [ 3 ]

4 голосов
/ 27 августа 2011

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

btn.setId(integer value) at runtime.

Если вы не хотите устанавливать идентификатор, тогда нет проблем

Также, когда вы создаете новый вид, вы должны установить его layout parameters(Height, Width)

например

btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

Так что весь процесс похож на

Button btn = new Button(Context);
btn.setId(1);
btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
btn.setText("Dynamic button");
btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
             Toast.makeText(v.getContext(),"Dynamic button is clicked", 3000).show();
            }
        });
2 голосов
/ 22 июля 2013

Попробуйте этот код.

Button text = new Button(this);

text.setId(1);
text.setText("text here");
ll.addView(text);
text.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        int id = arg0.getId(); // you get ID of your dynamic button
        Toast.makeText(getApplicationContext(), "Dynamic textview!", Toast.LENGTH_SHORT).show();
    }
});

В этом "ll" есть Layout и кнопка add.после этого вы в любое время используете click для выполнения кода clickListener.

0 голосов
/ 27 августа 2011

Вы можете просто использовать это

Button main= new Button(this);
            main.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                }
            });

и есть main.setId(pass here int value); для установки идентификатора, но я думаю, что он вам не понадобится

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