我要创建此textview,然后在单击此按钮后将其显示,但没有显示textview。
如果可能的话,我不想使用findViewById(),因为我想在每次按下按钮时创建一个新的textview。我尝试过先进行线性布局,但是我看到很多网站都说您不需要这样做,而我不想这样做。任何意见将是有益的。谢谢。
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 ProgrammaticallyTextView = new TextView(MainActivity.this);
ProgrammaticallyTextView.setText(Name);
ProgrammaticallyTextView.setTextSize(22);
popup.dismiss();
}
});
没有错误消息,logcat也没有说出任何错误。
答案 0 :(得分:1)
尝试这样:
private LinearLayout lLayout;
private EditText lEditText;
private Button lButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lLayout = (LinearLayout) findViewById(R.id.linearLayout);
lButton = (Button) findViewById(R.id.button);
lEditText = (EditText) findViewById(R.id.editText);
lButton.setOnClickListener(onClick());
TextView textView = new TextView(this);
textView.setText("Text New");
}
private OnClickListener onClick() {
return new OnClickListener() {
@Override
public void onClick(View v) {
lLayout.addView(createTextView(lEditText.getText().toString()));
}
};
}
private TextView createTextView(String text) {
final LayoutParams loutParams = new
LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
final TextView textView = new TextView(this);
textView.setLayoutParams(loutParams );
textView.setText("Text is " + text);
return textView;
}
答案 1 :(得分:0)
使用活动的findViewById()方法引用布局视图。例如,您可以替换
let x: Vec<Result<i32, DivisionError>> = division_results.collect();
使用
EditText name=layout.findViewById(R.id.enterName);
Button create=layout.findViewById(R.id.create);
注意:如果不使用片段,则无需使用getActivity,因为findViewById()是AppCompactActvity(或Activity)超类的方法。
我想您的代码无法正常工作,因为在oncreate()方法开始活动时未引用按钮视图和Editext视图