[英]How to create a new TextView in another activity when I press the button?
[英]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.