0

我只想将 ArrayList 中的选定字段加载到 ListView。我找不到那个例子,所以我问。

我有一个结构如下的 ArrayList:

ArrayList<LogInfo> logInfoArray

其中 LogInfo 类的字段如下:

public ArrayList<Point[][]> strokes;
public LinkedList<byte[]> codes;
public int[] times; //contains fields of calendar class

我想从“时间”和“代码”中的每一行选择字段中放入我的 ListView

我怎样才能做到这一点?如果可能的话,我想使用光标。

4

1 回答 1

0

您可以使用扩展的自定义适配器ArrayAdapter,您可以将ArrayList<LogInfo>.

然后,您可以覆盖getView(..)Adapter 的方法以在Listview.

更新

来自Android Custom Adapters的这个例子

import java.util.List;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

public class InteractiveArrayAdapter extends ArrayAdapter<LogInfo> {

  private final List<LogInfo> list;
  private final Activity context;

  public InteractiveArrayAdapter(Activity context, List<LogInfo> list) {
    super(context, R.layout.rowbuttonlayout, list);
    this.context = context;
    this.list = list;
  }

  static class ViewHolder {
    protected TextView text1, text2;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    View view = null;
    if (convertView == null) {
      LayoutInflater inflator = context.getLayoutInflater();
      view = inflator.inflate(R.layout.rowbuttonlayout, null);
      final ViewHolder viewHolder = new ViewHolder();
      viewHolder.text1 = (TextView) view.findViewById(R.id.label1);
      viewHolder.text2 = (TextView) view.findViewById(R.id.label2);

      view.setTag(viewHolder);

    } else {
      view = convertView;

    }
    ViewHolder holder = (ViewHolder) view.getTag();
    holder.text1.setText(list.get(position).getName1());
    holder.text2.setText(list.get(position).getName2());
    return view;
  }
} 
于 2013-05-20T04:25:08.890 回答