我必须通过运行查询来获取数据。所以,我需要一个可以动态添加数据的TextView。这是我在TextView中动态获取和分配数据的代码
do{
int count = cursor.getCount();
final TextView[] myTextViews = new TextView[count];
for(int counter = 0; counter<count ; counter++){
getName = cursor.getString(cursor.getColumnIndexOrThrow("NAME"));
affiliation_ID = cursor.getString(cursor.getColumnIndexOrThrow("NUMBER"));
final TextView rowTextView = new TextView(this);
rowTextView.setText(Html.fromHtml(getName+"<sup><small>"+affiliation_ID+"</small></sup><br/>"));
rel.addView(rowTextView);
}
} while(cursor.moveToNext());
它给我这样的结果。
正如您所见,一个词与另一个词重叠。这是我的xml文件
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/ConTopic"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/ConTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/ConTopic"
android:layout_marginTop="22dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<RelativeLayout
android:id="@+id/rel"
android:layout_width="fill_parent"
android:layout_height="match_parent" >
</RelativeLayout>
</RelativeLayout>
</ScrollView>
所以,我需要知道或者我的问题是
1)如果我想在ConTitle
下显示这些文字。我该怎么办?
2)对于案例1,如何动态添加TextView的愿望位置和文本大小。
3)如果我想在动态添加的TextView下添加另一个简单的Texview(普通文本),我可以这样做吗?
最后一件事,这就是我想要实现的目标
答案 0 :(得分:1)
您可以使用追加方法。有单个textview并将textview添加到您的布局。附加新数据并为新行附加\n
。
另外,为什么你有一个for循环和一段时间。一个while循环就足够了
TextView tv = new TextView(ActivityName.this);
rel.addView(tv);
if (cursor !=null && cursor.moveToFirst()) {
do {
getName = cursor.getString(cursor.getColumnIndexOrThrow("NAME"));
affiliation_ID = cursor.getString(cursor.getColumnIndexOrThrow("NUMBER"));
tv.append(Html.fromHtml(getName+"<sup><small>"+affiliation_ID+"</small></sup><br/>"));
tv.append("\n");
} while (cursor.moveToNext());
}