使用TextViews,Android Eclipse填充ScrollView

时间:2012-04-02 09:22:02

标签: android sql eclipse scrollview

以下是我的.xml布局文件中的一段:

<ScrollView 
android:layout_width = "match_parent"
android:layout_height = "300dp" >
    <TextView
        android:id="@+id/statementdatetv"
        android:layout_width="61dp"
        android:layout_height="300dp"
        android:text="DATE"
        android:textSize="10dp" />


    <TextView
        android:id="@+id/statementlocationtv"
        android:layout_width="95dp"
        android:layout_height="300dp"
        android:text="LOCATION" android:textSize="10dp"/>


    <TextView
        android:id="@+id/statementshoptypetv"
        android:layout_width="95dp"
        android:layout_height="300dp"
        android:text="SHOPTYPE" android:textSize="10dp"/>

    <TextView
        android:id="@+id/statementpricetv"
        android:layout_width="fill_parent"
        android:layout_height="300dp"
        android:text="PRICE" android:layout_weight="1" android:textSize="10dp"/>
    </ScrollView>

</LinearLayout>

ScrollView中的TextViews将从SQL数据库中填充。在添加ScrollView之前一切正常,但之后它只是出现了错误?

不幸的是我不知道哪个错误,是不是可以将SQL数据库中的值填充到ScrollView内的TextView中?

我想拥有ScrollView的原因是因为可以输出很多数据,我希望它们都在同一页面上,因此ScrollView是完美的(或者我认为)解决方案!

谢谢!

3 个答案:

答案 0 :(得分:1)

使用ListView

试试这个
MyAdapter adapteres;
 list = (ListView) findViewById(R.id.grp_list);
db = new DatabaseHelper(this);
contacts = db.getAllContacts();
adapteres = new MyAdapter(getBaseContext(), (ArrayList<Contact>) contacts);
list.setAdapter(adapteres);

和MyAdapter类:

public class MyAdapter extends BaseAdapter{
    Button btn;
    @SuppressWarnings("unused")
    private Context context;
    private ArrayList<Contact> contact;
    private LayoutInflater mInflater;


    public MyAdapter(Context context, ArrayList<Contact> contacts) {
        this.context = context;
        this.contact = contacts;
        mInflater = LayoutInflater.from(context);       
    }

    public int getCount() {

        return contact.size();
    }

    public Object getItem(int position) {

        return contact.get(position);
    }

    public long getItemId(int position) {

        return position;
    }

    public View getView(int pos, View view, ViewGroup parent) {
        if (view == null) {
            view = mInflater.inflate(R.layout.group_row, parent, false);  
        }

        Contact item = contact.get(pos);


        TextView name = (TextView) view.findViewById(R.id.group_name);
        name.setText(item.getName());


    }


}

答案 1 :(得分:0)

如果要显示来自DB的一些记录,可能最好的方法是使用ListViev而不是ScrollView。你应该在网上找到很多关于ListViev,CursorAdapter的例子。

答案 2 :(得分:0)

在滚动视图中使用LinearLayout。 :)

<ScrollView 
android:layout_width = "match_parent"
android:layout_height = "300dp" >

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

    android:orientation="vertical"

    >
    <TextView
        android:id="@+id/statementdatetv"
        android:layout_width="61dp"
        android:layout_height="300dp"
        android:text="DATE"
        android:textSize="10dp" />


    <TextView
        android:id="@+id/statementlocationtv"
        android:layout_width="95dp"
        android:layout_height="300dp"
        android:text="LOCATION" android:textSize="10dp"/>


    <TextView
        android:id="@+id/statementshoptypetv"
        android:layout_width="95dp"
        android:layout_height="300dp"
        android:text="SHOPTYPE" android:textSize="10dp"/>

    <TextView
        android:id="@+id/statementpricetv"
        android:layout_width="fill_parent"
        android:layout_height="300dp"
        android:text="PRICE" android:layout_weight="1" android:textSize="10dp"/>
</LinearLayout>
    </ScrollView>