在活动中设置表格数据 - 这种方法是否有效

我有一个简单的表格布局,我想通过初始化特定类型来填充  我的onCreate方法中的对象。首先,这是我的布局 jobs_table.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:id="@+id/Jobs"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:stretchColumns="*"
             xmlns:android="http://schemas.android.com/apk/res/android">
    <TableRow android:id="@+id/JobRow" android:layout_width="wrap_content" android:layout_height="wrap_content">
        <TextView android:id="@+id/JobID" android:layout_column="1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black"></TextView>
        <TextView android:id="@+id/JobStatus" android:layout_column="2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black"></TextView>
        <TextView android:id="@+id/Customer" android:layout_column="3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black"></TextView>
        <TextView android:id="@+id/Department" android:layout_column="4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black"></TextView>
        <TextView android:id="@+id/DocType" android:layout_column="5" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black"></TextView>
    </TableRow> 
</TableLayout>
和活动
package com.producermobile;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TableLayout;

import com.producermobile.jobs.ProducerJobRows;

public class JobRowsActivity extends Activity { 

    private BatchingJobRows jobRows;    

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.jobs_table);
        jobRows = new BatchingJobRows(this);        
    }
}
现在的想法是当我创建我的jobRows时,表的数据将由BatchingJobRows对象加载,这应该可以用于我的活动。我没有办法在mo处检查这个,所以我不确定这个概念是否正确(我主要担心的是在表中添加行的while循环)。 无论如何,这里是BatchingJobRows中发生的简化版本。
package com.producermobile.jobs;

import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;

import com.producermobile.R;

public class BatchingJobRows  {

    private TableLayout table;
    private View tableView;
    private Context context;
    private HashMap<String,ArrayList<String>> jobs; 
    private ArrayList<String> jobsVals;

    public BatchingJobRows(Context context) {
        this.context = context;
        LayoutInflater inflater = (LayoutInflater) 
            context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        tableView = inflater.inflate(R.layout.jobs_table, null);
        table = (TableLayout) tableView.findViewById(R.id.Jobs);
        jobVals = new ArrayList<String>();
        jobVals.add("HELD");
        jobVals.add("DELL");
        jobVals.add("PRINT");
        jobVals.add("STATEMENT");
        jobs = new HashMap<String,ArrayList<String>>();
        jobs.put("012345",jobVals);
        jobs.put("123456",jobVals);
        this.setRows();
    }

    public void setRows() {
        Iterator<String> keys = jobs.keySet().iterator();
        while(keys.hasNext()) {
            //Init Objects
            TableRow row = (TableRow) TableView.findViewById(R.id.JobRow);
            TextView jobid = (TextView) tableView.findViewById(R.id.JobID);
            TextView jobstatus = (TextView) tableView.findViewById(R.id.JobStatus);
            TextView customer = (TextView) tableView.findViewById(R.id.Customer);
            TextView department = (TextView) tableView.findViewById(R.id.Department);
            TextView doctype = (TextView) tableView.findViewById(R.id.DocType);
            String key = keys.next();
            jobid.setText(key);
            jobstatus.setText(jobs.get(key).get(0));
            customer.setText(jobs.get(key).get(1));
            department.setText(jobs.get(key).get(2));
            doctype.setText(jobs.get(key).get(3));
            row.addView(jobid);
            row.addView(jobstatus);
            row.addView(customer);
            row.addView(department);
            row.addView(doctype);
            table.addView(row);
        }
    }
}
    
已邀请:
这不是你问题的直接答案,但我认为你应该做的是创建一个列表活动,并将此功能下移到某种类型的ListAdapter中。我们可以帮助您解决如何设置它的问题。它可能比您前往的路线更容易,并且对于此板上的人员更熟悉。所以我建议采用传统方法。根据您的需要使用ListActivity和ListAdapter Base或Cursor。     

要回复问题请先登录注册