gpt4 book ai didi

android - 给 ScrollView 添加不同的 TextView

转载 作者:行者123 更新时间:2023-11-30 04:23:51 25 4
gpt4 key购买 nike

我有 Activity 从互联网上获取一些数据,并将其显示在屏幕上。我正在使用 ScrollView ,因为它是长文本,我还想要不同数据的不同文本样式,所以我使用了几个不同样式的 TextView 并将其显示在 Activity 屏幕上,我的问题是 ScrollView 只能处理一个 View ,所以我如何使用滚动来显示不同样式的 TextView ,我尝试将 LinearLayout 添加到 scrollView 并在代码中将所有 textView 动态添加到此 LinearLayout ,但我是出现异常 - ScrollView 只能承载一个直接 subview 。

下面的代码:

/** this is the function, which called from the onClick method.
wanted data object contains 2 strings title message and the message itself.

When debug the code i can see that there's two String values in each loop.
but i cant add the linearLayout to my scrollView - exception ScrollView can host only one direct child */

private void showResult(ArrayList<WantedData> result) {
// TODO Auto-generated method stub
TextView title;
TextView data;
scrollLayout = (LinearLayout) findViewById(R.id.LlScrollView);
for (WantedData curr : result) {
if (curr.getTitle() == null) {
break;
}

title = new TextView(this);
title.setText(curr.getTitle());

scrollLayout.addView(title, LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
data = new TextView(this);
data.setText(curr.getData());
scrollLayout.addView(data, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
}
scroll.addView(scrollLayout, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

//at the onCreate method - scroll = (ScrollView) findViewById(R.id.SvShowTextFromServer);
}

xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<include
android:id="@+id/layout_reffernce"
layout="@layout/explore" />

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Enter City" />

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<EditText
android:id="@+id/EtCity"
android:layout_width="210dp"
android:layout_height="wrap_content"
android:layout_weight="0.14"
android:orientation="vertical" >

<requestFocus />
</EditText>

<Button
android:id="@+id/bSearchCity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Search" />
</LinearLayout>

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Enter State" />

<EditText
android:id="@+id/EtState"
android:layout_width="253dp"
android:layout_height="wrap_content"
android:orientation="vertical" />
</LinearLayout>

<ScrollView
android:id="@+id/SvShowTextFromServer"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
android:id="@+id/LlScrollView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/backround"
android:orientation="vertical" >
</LinearLayout>


</ScrollView>

</LinearLayout>

最佳答案

问题是在 ScrollView 中双重创建容器。你不应该在 Activity 中创建它,而是从 xml 中获取已经定义的:

LinearLayout scrollContainer = (LinearLayout)findViewById(R.id.LlScrollView);
for (...) {
//create here some text
scrollLayout.addView(text);
}

关于android - 给 ScrollView 添加不同的 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8862881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com