在Android中单击按钮时无法显示textview

时间:2019-06-07 18:45:28

标签: java android textview

我要创建此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也没有说出任何错误。

2 个答案:

答案 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视图