findViewById для динамически добавленного просмотра - PullRequest
0 голосов
/ 06 мая 2018

Можно ли найти добавленный TextView, чтобы обновить его другими опциями. Я добавляю этим кодом новый TextView с кнопкой. Теперь я хочу также установить onClickListerner для динамически добавляемых TextViews. Для этого я должен найти их с помощью метода findViewById. Но они еще не созданы.

Могу ли я сделать это по-другому, и если да, то как?

    Button hinzufügenButton = (Button) findViewById(R.id.hinzufügen_Button);

    hinzufügenButton.setOnClickListener(new Button.OnClickListener() {

        public void onClick (View view){
            EditText tischName = (EditText) findViewById(R.id.tisch_name_EditText);
            TextView tisch = new TextView(getApplicationContext());
            tisch.setText(tischName.getText());
            tisch.setAllCaps(true);
            tisch.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            tisch.setBackgroundColor(Color.parseColor("#9FA8DA"));
            tisch.setTextSize(25);
            tisch.setId(id);
            id++;


            LinearLayout tischeAnzeigen = (LinearLayout) findViewById(R.id.tische_LinearLayout);

            tischeAnzeigen.addView(tisch);
        }
    });

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Вы можете использовать setId для добавления идентификатора. Но вам, вероятно, не нужно. Если вы создаете представление динамически, у вас есть ссылка на него при его создании. Просто установите это на этой ссылке. Не нужно его искать.

0 голосов
/ 06 мая 2018

Просто добавьте onClickListener при создании динамических представлений

Пример:

...
tisch.setId(id);
tisch.setOnClickListener(yourListener);
...
...