android setText不适用于scrollview

时间:2014-04-19 00:46:28

标签: android scrollview settext

这是我的代码 XML

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.secandroidapp.MainActivity"
tools:ignore="MergeRootFrame" >

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
    android:onClick="postData" />

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="fill"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center" />
    </LinearLayout>
</ScrollView>
</FrameLayout>

mainactivity

public void postData(View view) {
    // Create a new HttpClient and Post Header
    Toast.makeText(this, "postData", Toast.LENGTH_LONG).show();

    AsyncHttpClient client = new AsyncHttpClient();
    client.get("http://cs-server.usc.edu:21111/geneXML.php?CSymbol=GOOG", new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(String response) {
            TextView show = (TextView) findViewById(R.id.textView1);
            show.setText(response);
        }
    });

问题是当按下按钮,没有任何作用,甚至没有在logcat中,但如果我把按钮放在线性布局内,那么数据将正确显示,但按下按钮后,它将消失,只留下数据。我想这是因为按钮和textview在不同的视图中?但是如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:1)

FrameLayout替换为LinearLayout并尝试使用。尝试了解FrameLayout的使用位置和原因。

  

FrameLayout旨在阻挡屏幕上的某个区域以显示单个项目。通常,FrameLayout应该用于保存单个子视图,因为很难以可扩展到不同屏幕大小而儿童不会相互重叠的方式组织子视图。但是,您可以使用android:layout_gravity属性将多个子项添加到FrameLayout并通过为每个子项分配重力来控制它们在FrameLayout中的位置。