我想将TextViews扩展为LinearLayout。
我有一个布局activity_play_game
和一个java类PlayGameActivity
。
目前,对于硬编码的TextView,它看起来像这样:
现在我尝试根据变量numberForbiddenWords
的值添加一些TextView。我添加了一段代码如下:
LinearLayout playGame = (LinearLayout) findViewById(R.id.activity_play_game);
TextView temp;
TextView[] textViews = new TextView[numberForbiddenWords];
for(int i = 0; i < numberForbiddenWords; i++) {
temp = new TextView(this);
playGame.addView(temp);
textViews[i] = temp;
}
我有一个方法可以将textView添加到activity_play_game
。不幸的是现在它看起来像这样:
如您所见,它在底部添加了TextViews。所以我从activity_play_game
中删除了所有TextView,并添加了LinearLayout来扩展TextViews:
如何将TextViews扩展到按钮上方的LinearLayout? 我找到了那种解决方案:
activity_to_add_words:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
在java类中:
final View addView;
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
addView = layoutInflater.inflate(R.layout.activity_to_add_words,
null);
final TextView textOut = (TextView) addView.findViewById(R.id.textout);
但这适用于View
,而非TextView
。你知道怎么做吗?
答案 0 :(得分:1)
获取LinearLayout
container_blue
的引用并向其添加TextView's
。
试试这个:
LinearLayout playGame = (LinearLayout) findViewById(R.id.container_blue);
TextView temp;
TextView[] textViews = new TextView[numberForbiddenWords];
for(int i = 0; i < numberForbiddenWords; i++) {
temp = new TextView(this);
temp.setText("TextView " + String.valueOf(i));
temp.setId(i);
temp.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
playGame.addView(temp);
textViews[i] = temp;
}
答案 1 :(得分:1)
使用textview制作一个布局文件,如下所示:
layout_textview.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/txt_spin"
android:textSize="18sp"
android:background="#fff"
android:padding="5dp"
android:textColor="#000"
android:layout_height="wrap_content"/>
然后在您的java文件中应用以下代码:
LinearLayout playGame = (LinearLayout) findViewById(R.id.container_blue);
LayoutInflater li =(LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = li.inflate(R.layout.layout_textview, null);
TextView txt= (TextView) view.findViewById(R.id.txt_spin);
playGame.addView(view);
希望它适合你......快乐的编码.. :)
答案 2 :(得分:0)
据我所知,您最初的问题是在三个按钮之前动态添加项目。如果您想在三个按钮之前添加它们,只需调用playGame.addView(temp,0);
这将始终将项目添加到布局中的第一个位置。
如果您需要添加视图的特定顺序,则需要使用for循环以正确的顺序添加它们。