繁体   English   中英

单击按钮时,如何通过编程方式创建一个新的TextView?

[英]How do I create a New TextView Progmatically when a button is clicked?

因此,我想在单击按钮时创建一个新的TextView。 由于某种原因,TextView(this)在onClick()内时不起作用。 我希望仅使用Java就能做到这一点。

同样,当我在onClick内创建TextView时,制作TextView(this)时出现错误。

EditText name = layout.findViewById(R.id.enterName);
        final String Name = name.getText().toString();
        Button create = layout.findViewById(R.id.create);
        create.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TextView textView = new TextView(this);
                textView.setText(Name);
            }
        });

我收到错误消息:“ TextView中的TextView(android.content.Context)无法应用于(匿名android.view.View.OnClickListener)”。

内部类上下文中的this指向内部类的实例,该实例不是(如错误所示) Context (它是事件侦听器)。 如果要使用外部类实例,则必须在this MyClass.this加上类限定符,即MyClass.this ,其中MyClass是从其调用此代码的类的名称。

当您位于点击侦听器内部时, this是指侦听器,而不是活动。 您需要使用对活动或上下文的引用来实例化TextView。

尝试替换此行:

  TextView textView = new TextView(this);

用这行:

TextView textView = new TextView(Activity.this);

如果要传递上下文,则需要使用Activity.this

this是指内部类(OnClickListener),而不是您的Activity(您的外部类)

您的代码还可以,唯一的问题是您正在创建文本视图,但未将其添加到布局中。

所以加

layout.addView(textView);

下面

textView.setText(Name);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM