【问题标题】:How to use listview to populate a table layout如何使用 listview 填充表格布局
【发布时间】:2011-07-14 15:35:34
【问题描述】:

我有以下来自蓝牙聊天示例的代码。我要做的就是通过蓝牙获取数据,并将其作为字符串显示在表格布局中的正确位置。多亏了 BT 示例,大部分内容都为我完成了,但更改主文件中的布局并没有奏效。我采取了正确的方法,还是需要制作一个全新的适配器来处理我的数据和布局要求?我理解代码的方式是将数据放入具有 R.layout.message 格式的数组中,然后 R.id.in 告诉程序如何显示信息。对于要在其中显示数组中的数据的每个单元格,是否需要单独的字段 ID?感谢您给我的任何帮助。

 // Initialize the array adapter for the conversation thread
    mConversationArrayAdapter = new ArrayAdapter<String>(this, R.layout.message);
    mConversationView = (ListView) findViewById(R.id.in);
    mConversationView.setAdapter(mConversationArrayAdapter);

来自 layout.message 文件

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#A4C639"
android:textSize="18sp"

/>

来自 layout.main 文件

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1,2">

<TableRow>
    <TextView
        android:layout_column="1"
        android:text="RPM"
        android:padding="3dip" 
        android:textSize="18sp"
        />
    <TextView
         android:layout_column="1"
        android:text="Gear"
        android:gravity="left"
        android:padding="3dip"
        android:textSize="24sp"
         />
          <TextView
        android:layout_column="1"
        android:text="Temp"
        android:gravity="right"
        android:padding="3dip" 
        android:textSize="18sp"
        />
</TableRow>
   <TableRow>

     <ListView android:id="@+id/in"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="left"
    android:layout_weight="1"
/>
    <TextView
        android:layout_column="1"
        android:text=""
        android:gravity="right"
        android:padding="3dip" 
        android:textSize="18sp"
        />
           <ListView android:id="@+id/in"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="right"
    android:layout_weight="1"
/>

<TableRow>

    <TextView
         android:layout_column="1"
        android:text="MPH"
        android:padding="3dip" 
        android:textSize="18sp"
        />
          <ListView android:id="@+id/in"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="left"
    android:layout_weight="1"
/>
    <TextView
        android:layout_column="1"
        android:text="Battery Voltage"
        android:gravity="right"
        android:padding="3dip" 
        android:textSize="18sp"
        />

    android:layout_weight="1"
/>
    <TextView
        android:layout_column="1"
        android:text=""
        android:gravity="right"
         android:padding="3dip" 
        android:textSize="18sp"
        />
         <ListView android:id="@+id/in"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="left"
    android:layout_weight="1"
/>
         </TableRow>

<!--   
<ListView android:id="@+id/in"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:stackFromBottom="false"
    android:transcriptMode="disabled"
    android:layout_weight="1"
/>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
    <EditText android:id="@+id/edit_text_out"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="bottom"
    />
    <Button android:id="@+id/button_send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/send"
    />
</LinearLayout>
-->

【问题讨论】:

    标签: android arrays listview tablelayout


    【解决方案1】:

    尝试以ListView tutorial 开头。由于您将复杂的视图用作行,因此您最终需要覆盖 ArrayAdapter 上的 getView 方法以扩展行布局并适当地设置其视图。

    【讨论】:

    • 我查看了教程,但我无法真正弄清楚您在说什么。是否可以使用数据数组,数组中的每个对象都由文本视图表示?我不希望我的 UI 中的每个项目都有一个列表,只是为了在正确的位置一次在数组中显示一个对象。
    • 是的,ListView(或任何 AdapterView)将从您的数据结构中为每一行读取一项。
    猜你喜欢
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多