编辑:我错了,谢谢@Amylinn的帮助。Android的addView到LinearLayout不起作用。怎么了?
获得的经验:不要忘记在假设某些事情出错之前运行您的代码。我道歉。
-
我花了4个小时在谷歌和堆栈溢出。我试图通过Java将TextView
添加到LinearLayout
。我不明白我的代码有什么问题,我在堆栈溢出上尝试了一些解决方案,并在其上添加了绿色复选标记,但代码仍然不起作用。有人能帮我吗?
这是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root_of_numbers_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".NumbersActivity">
</LinearLayout>
我曾尝试从match_parent
的layout_height
值更改为wrap_content
,改变它的方向,仍然没有工作。下面是情况下的截图,如果你需要它(我使用的IntelliJ IDEA,我还没有在Android Studio的测试):
-
而这里的Java文件:
package com.example.android.miwok;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;
public class NumbersActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_numbers);
ArrayList<String> list_words = new ArrayList<String>();
list_words.add("Hello!");
//========CODE NUMBER 1 STARTS========
// LinearLayout rootOfNumbersActivity = (LinearLayout)findViewById(R.id.root_of_numbers_activity);
// LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
// LinearLayout.LayoutParams.WRAP_CONTENT,
// LinearLayout.LayoutParams.WRAP_CONTENT
// );
// TextView numbersList = new TextView(this);
// numbersList.setLayoutParams(layoutParams);
// numbersList.setText(list_words.get(0));
//
// rootOfNumbersActivity.addView(numbersList);
//========CODE NUMBER 1 ENDS========
//========CODE NUMBER 2 STARTS========
// LinearLayout rootOfNumbersActivity = (LinearLayout)findViewById(R.id.root_of_numbers_activity);
// TextView numbersList = new TextView(this);
// numbersList.setLayoutParams(new LinearLayout.LayoutParams(
// LinearLayout.LayoutParams.WRAP_CONTENT,
// LinearLayout.LayoutParams.WRAP_CONTENT));
// numbersList.setText(list_words.get(0));
// rootOfNumbersActivity.addView(numbersList);
//========CODE NUMBER 2 ENDS========
//========CODE NUMBER 3 STARTS========
ViewGroup rootOfNumbersActivity = (ViewGroup)findViewById(R.id.root_of_numbers_activity);
TextView numbersList = new TextView(this);
numbersList.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
numbersList.setText(list_words.get(0));
rootOfNumbersActivity.addView(numbersList);
//========CODE NUMBER 3 ENDS========
}
}
注意:我已经在上面的注释中尝试了代码,不工作。
-
这里就是我想要做的:我要添加视图,TextView
到LinearLayout
,通过Java文件。我是Android开发新手,请尽可能清楚地解释。如果您需要其他线索,请告诉我。最后,感谢你的努力和你的时间。 : - )
P.S.英语是我的第三语言,我对语法错误表示歉意。
你有什么错误吗? – yennsarah
@Amylinn no Amylinn,在XML和Java文件中没有错误警告。 –
您是否尝试过运行它?你的屏幕上有什么输出? – yennsarah