Android ArrayList ListView / Textview - 您必须为textview提供资源ID

时间:2012-02-23 09:31:39

标签: java android

我有一点工作,所以我想我只是引用了一些错误的东西。 _regionListView好像回来了。我认为ArrayList中的数组是问题,因为它包含额外的空索引但我认为我没有正确连接到ListView和TextView。

任何帮助都将不胜感激。

Main.java

String _region = inRegion;
    ParserRegion _parserRegion = new ParserRegion();
    InputStream _inputStream = getResources().openRawResource(R.raw.regions);

    // Parse the Input Stream
    _parserRegion.Parse(_inputStream, _region);

    // Get Regions
    List<PropertiesRegion> _regionList = _parserRegion.GetList();

    // Create the ArrayAdapter
    ArrayAdapterRegion _arrayAdapter = new ArrayAdapterRegion(getApplicationContext(), R.layout.search_list, _regionList);

    // Get reference to ListView holder
    ListView _regionListView = (ListView) this.findViewById(R.id.regionListView);

    // Set the ListView adapter
    _regionListView.setAdapter(_arrayAdapter);

Search.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:adjustViewBounds="true"
    android:background="@drawable/search_background"
    android:gravity="center"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:scaleType="centerCrop" >

    <TextView
        android:id="@+id/selectRegionTextView"
        android:cacheColorHint="#00000000"
        android:layout_width="wrap_content"
        android:layout_height="30dp" 
        android:layout_marginLeft="10dip"
        android:layout_marginRight="10dip"
        android:layout_marginTop="150dip"
        android:gravity="top"
        android:textColor="#000000"
        android:textSize="20dip"
        android:textStyle="bold"
        android:typeface="sans" />

    <ListView 
        android:id="@+android:id/regionListView"
        android:cacheColorHint="#00000000" 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginBottom="5dip"
        android:layout_marginLeft="10dip"
        android:layout_marginRight="10dip"
        android:padding="10dp" />

    <Button
        android:id="@+id/mainMenuButton"
        android:background="@drawable/button_black"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginBottom="70dip"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
            android:typeface="sans"
            android:textSize="18dip"
            android:textStyle="bold"
            android:textColor="@android:color/white"/>

</LinearLayout>

Search_list.xml

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

    <TextView
        android:id="@+id/regionTextView"
        android:cacheColorHint="#00000000"
        android:gravity="center"
        android:layout_gravity="left"
        android:layout_width="wrap_content"
        android:layout_height="60dp" 
        android:paddingLeft="10dip"
        android:textColor="#000000"
        android:typeface="sans"
        android:textSize="20dip"
        android:textStyle="bold"/>

</LinearLayout>

2 个答案:

答案 0 :(得分:3)

像这样写 search_list.xml

<?xml version="1.0" encoding="utf-8"?>

    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@android:id/text1"
        android:cacheColorHint="#00000000"
        android:gravity="center"
        android:layout_gravity="left"
        android:layout_width="wrap_content"
        android:layout_height="60dp" 
        android:paddingLeft="10dip"
        android:textColor="#000000"
        android:typeface="sans"
        android:textSize="20dip"
        android:textStyle="bold"/>

答案 1 :(得分:2)

从search_list.xml中删除LinearLayout并仅使用textview并将其放在textview本身

xmlns:android="http://schemas.android.com/apk/res/android"

那里不需要LinearLayou,你也可以设置 android:layout_height =“wrap_content”。然后它就可以了。 :)