findViewById用于动态添加View

时间:2018-05-05 22:09:04

标签: android textview onclicklistener add dynamically-generated

是否可以找到添加的TextView以使用其他选项更新它。 我通过这个代码添加了一个带有Button的新TextView。现在,我还想为动态添加的TextViews设置onClickListerner。为此,我必须使用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 :(得分:0)

只需在创建动态视图时添加onClickListener

示例:

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

答案 1 :(得分:0)

您可以使用setId添加ID。但你可能不需要。如果您要动态创建视图,则在创建视图时会引用该视图。只需将其设置在该引用上即可。无需找到它。