有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法检索整数getHeight()

我以编程方式创建了一个Layout“布局”,然后在同一布局中创建了一个TextView以显示layout{},类中没有其他方法或任何其他内容。不幸的是,应用程序关闭了,我不知道为什么

LinearLayout layout =new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        layout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
        LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        lparams.setMargins(0, 10, 0, 10);
        lparams.gravity= Gravity.CENTER;


        TextView fimText = new TextView(this);
        fimText.setLayoutParams(lparams);
        fimText.setText(layout.getHeight());
        layout.addView(fimText, lparams);
        setContentView(layout);

共 (1) 个答案

  1. # 1 楼答案

    在调用getHeight之前,需要将LinearLayout添加到容器中。此外,getHeight返回一个int,因此需要将其转换为字符串

    试试这个:

    LinearLayout layout =new LinearLayout(this);
    layout.setOrientation(LinearLayout.VERTICAL);
    layout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
    LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,     LinearLayout.LayoutParams.WRAP_CONTENT);
    lparams.setMargins(0, 10, 0, 10);
    lparams.gravity= Gravity.CENTER;
    
    setContentView(layout);
    
    TextView fimText = new TextView(this);
    fimText.setLayoutParams(lparams);
    fimText.setText(String.valueOf(layout.getHeight()));
    layout.addView(fimText, lparams);