Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将数据从多个阵列加载到listview?_Android_Android Listview_Android Arrayadapter - Fatal编程技术网

Android 如何将数据从多个阵列加载到listview?

Android 如何将数据从多个阵列加载到listview?,android,android-listview,android-arrayadapter,Android,Android Listview,Android Arrayadapter,以下是我的listview结构: ________________________ Job No : Address : ________________________ Job No : Address : ________________________ Job No : Address : ________________________ 所有作业编号存储在一个数组中,地址存储在另一个数组中。 如何将这些数组加载到listview中。有人能帮我吗。请创建自定义适配

以下是我的listview结构:

________________________

Job No : 
Address : 

________________________

Job No : 
Address : 

________________________

Job No : 
Address : 

________________________
所有作业编号存储在一个数组中,地址存储在另一个数组中。
如何将这些数组加载到listview中。有人能帮我吗。请创建自定义适配器

伪代码如下所示

Class Adpter extends BasAdapter{
String[] one;
String[] two;
public Adpter(String[] one, String[] two){
this.one = one;
this.two= two;
}

public getView(convertView){

text1.setText(one[position]);
text12.setText(two[position]);

}

}

创建自定义适配器

伪代码如下所示

Class Adpter extends BasAdapter{
String[] one;
String[] two;
public Adpter(String[] one, String[] two){
this.one = one;
this.two= two;
}

public getView(convertView){

text1.setText(one[position]);
text12.setText(two[position]);

}

}

我建议首先将数组合并到一个包含对象的数组中,该对象保存列表视图中一行的完整信息。或者,如果信息来自数据库,则可以使用游标适配器

然后创建一个
ViewBinder
并将其连接到适配器(
setViewBinder()
)。哪一个取决于您的适配器。例如,有一个
SimpleCursorAdapater.ViewBinder
或一个
simpledapter.ViewBinder
等等。在
ViewBinder
的setViewValue()方法中,填充列表视图中行的字段。在您的示例中,有两个字段,一个用于作业编号,另一个用于地址。为此,您需要为包含这些字段的列表项创建自定义布局。布局通常在适配器的构造函数中设置


Android developer文档中提供了有关
ViewBinder
的更多信息。

我建议首先将数组合并到一个数组中,该数组包含列表视图一行的完整信息。或者,如果信息来自数据库,则可以使用游标适配器

然后创建一个
ViewBinder
并将其连接到适配器(
setViewBinder()
)。哪一个取决于您的适配器。例如,有一个
SimpleCursorAdapater.ViewBinder
或一个
simpledapter.ViewBinder
等等。在
ViewBinder
的setViewValue()方法中,填充列表视图中行的字段。在您的示例中,有两个字段,一个用于作业编号,另一个用于地址。为此,您需要为包含这些字段的列表项创建自定义布局。布局通常在适配器的构造函数中设置


Android开发者文档中提供了有关查看绑定器的更多信息。

为listview创建一个适配器,就像sandy建议的那样,然后在活动中调用该适配器。下面是我的一个适配器的示例:

public class DictionaryListAdapter extends BaseAdapter {

private static ArrayList<Term> termsList;

private LayoutInflater mInflater;

public DictionaryListAdapter (Context ctx, ArrayList<Term> results){
    termsList = results;
    mInflater = LayoutInflater.from(ctx);
}

public int getCount() {
    // TODO Auto-generated method stub
    return termsList.size();
}

public Object getItem(int position) {
    // TODO Auto-generated method stub
    return termsList.get(position);
}

public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    ViewHolder holder;
    if (convertView == null){
        convertView = mInflater.inflate(R.layout.dictionarylistinflater, null);
        holder = new ViewHolder();
        holder.tvTerm = (TextView) convertView.findViewById(R.id.tvTerm);
        holder.tvAbbr = (TextView) convertView.findViewById(R.id.tvAbbreviation);

        convertView.setTag(holder);
    }
    else{
        holder = (ViewHolder) convertView.getTag();
    }

    holder.tvTerm.setText(termsList.get(position).getWord());
    holder.tvAbbr.setText(termsList.get(position).getAbbr1() + "   " +termsList.get(position).getAbbr2());

    return convertView;
}

static class ViewHolder{
    TextView tvTerm;
    TextView tvAbbr;
}

我也会采纳Stefan的建议,将其组合成一个数组。“术语”对我来说是一个术语数组列表,每个术语都有一个全名、两个缩写、一个定义和一个公式。祝你好运

像sandy建议的那样,为listview创建一个适配器,然后在活动中调用该适配器。下面是我的一个适配器的示例:

public class DictionaryListAdapter extends BaseAdapter {

private static ArrayList<Term> termsList;

private LayoutInflater mInflater;

public DictionaryListAdapter (Context ctx, ArrayList<Term> results){
    termsList = results;
    mInflater = LayoutInflater.from(ctx);
}

public int getCount() {
    // TODO Auto-generated method stub
    return termsList.size();
}

public Object getItem(int position) {
    // TODO Auto-generated method stub
    return termsList.get(position);
}

public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    ViewHolder holder;
    if (convertView == null){
        convertView = mInflater.inflate(R.layout.dictionarylistinflater, null);
        holder = new ViewHolder();
        holder.tvTerm = (TextView) convertView.findViewById(R.id.tvTerm);
        holder.tvAbbr = (TextView) convertView.findViewById(R.id.tvAbbreviation);

        convertView.setTag(holder);
    }
    else{
        holder = (ViewHolder) convertView.getTag();
    }

    holder.tvTerm.setText(termsList.get(position).getWord());
    holder.tvAbbr.setText(termsList.get(position).getAbbr1() + "   " +termsList.get(position).getAbbr2());

    return convertView;
}

static class ViewHolder{
    TextView tvTerm;
    TextView tvAbbr;
}

我也会采纳Stefan的建议,将其组合成一个数组。“术语”对我来说是一个术语数组列表,每个术语都有一个全名、两个缩写、一个定义和一个公式。祝你好运

你用什么适配器?请出示你的适配器你用什么适配器?请出示你的适配器