Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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_Arrays_Listview - Fatal编程技术网

Android用字符串数组填充ListView

Android用字符串数组填充ListView,android,arrays,listview,Android,Arrays,Listview,我有3个String[]数组 DateArray[]={"17/09/2012","18/09/2012","19/09/2012"}; Visit[]={"4","10","2"}; Distance[]={"30","100","45"}; 我想在列表视图中显示这个数组,就像这样我制作了XML我只想填充这3个值这是一个ListActivity 我已经试过了 我该怎么做 用于单击我正在使用的ListView listView.setAdapter(new ObjA

我有3个
String[]数组

DateArray[]={"17/09/2012","18/09/2012","19/09/2012"};

Visit[]={"4","10","2"};

Distance[]={"30","100","45"};
我想在列表视图中显示这个数组,就像这样我制作了XML我只想填充这3个值这是一个
ListActivity

我已经试过了

我该怎么做

用于单击我正在使用的ListView

           listView.setAdapter(new ObjAdapter(this, R.layout.claimlistview, items));

           listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

               @Override
               public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {

                 Object o = listView.getItemAtPosition(position);

                    TextView t1=(TextView)findViewById(R.id.ClaimDate);

                    if(t1!=null){
                        ClaimListBean mSelected;
                        int idx=position;
                        mSelected=m_adapter.getItem(idx);

                        String Date=mSelected.getDate();

                        //StringTokenizer tokens = new StringTokenizer(Date, "(");
                        //String first = tokens.nextToken();
                        //String second = tokens.nextToken();
                        String Visit=mSelected.getVisit();
                        String Distance=mSelected.getDistance();
                        //String EditedSecond = second.replace(")","");

                    Intent intent=new Intent(DRSTClaimList.this,DRSTClaimDetail.class);
                    intent.putExtra("Date", Date);
                    //intent.putExtra("Date", first);
                    //intent.putExtra("Day", EditedSecond);
                    intent.putExtra("Distance", Distance);
                    intent.putExtra("Visit", Visit);
                    startActivity(intent);
                    }
listView.setAdapter(新的ObjAdapter(this,R.layout.claimlistview,items));
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3){
对象o=listView.getItemAtPosition(位置);
TextView t1=(TextView)findViewById(R.id.ClaimDate);
如果(t1!=null){
已选择ClaimListBean;
int idx=位置;
mSelected=m_adapter.getItem(idx);
字符串日期=mSelected.getDate();
//StringTokenizer令牌=新的StringTokenizer(日期,“(”);
//String first=tokens.nextToken();
//String second=tokens.nextToken();
String Visit=mSelected.getVisit();
字符串距离=mSelected.getDistance();
//字符串EditedSecond=second.replace(“)”,“”);
Intent Intent=新的Intent(DRSTClaimList.this,drstclaimdail.class);
意向。额外(“日期”,日期);
//意向。额外(“日期”,第一);
//意图。putExtra(“日”,编辑秒);
意向。额外(“距离”,距离);
意向。额外(“访问”,访问);
星触觉(意向);
}

您可以使用自定义阵列适配器来实现所需功能


请查看官方文档。

您可以使用自定义阵列适配器实现所需功能


请查看官方文档。

您需要为listview设置自定义适配器。首先设置适配器,然后在活动中设置适配器,但作为其自己的类,设置自定义适配器

例如:

这将设置行项目(将
R.layout.layout\u行
替换为任何布局)

listView.setAdapter(new CustomListAdapter(this, R.layout.layout_row, Visit));
然后添加此项并根据需要进行调整

private class CustomListAdapter extends ArrayAdapter<String> {

    public CustomListAdapter(Context context, int textViewResourceId,
            String[] objects) {
        super(context, textViewResourceId, objects);
        this.notifyDataSetChanged();
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = getLayoutInflater();
        View row = inflater.inflate(R.layout.layout_row,
                parent, false);

        TextView dateText = (TextView) row.findViewById(whatever);
        TextView visitText = (TextView) row.findViewById(whatever);
        TextView distanceText = (TextView) row.findViewById(R.id.whatever);

                    dateText.setText(DateArray[position]);
                    // do the same for the other 2
        return row;
    }
}
私有类CustomListAdapter扩展了ArrayAdapter{
公共CustomListAdapter(上下文,int textViewResourceId,
字符串[]对象){
超级(上下文、textViewResourceId、对象);
this.notifyDataSetChanged();
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutInflater充气机=getLayoutInflater();
视图行=充气机。充气(R.layout.layout_行,
父母,假);
TextView dateText=(TextView)row.findViewById(无论什么);
TextView visiteText=(TextView)row.findViewById(无论什么);
TextView距离text=(TextView)row.findViewById(R.id.whatever);
setText(DateArray[position]);
//对其他2个也做同样的操作
返回行;
}
}

应该可以正常工作…

您需要为listview设置自定义适配器。首先设置适配器,然后在活动中设置适配器,但作为其自己的类,设置自定义适配器

例如:

这将设置行项目(将
R.layout.layout\u行
替换为任何布局)

listView.setAdapter(new CustomListAdapter(this, R.layout.layout_row, Visit));
然后添加此项并根据需要进行调整

private class CustomListAdapter extends ArrayAdapter<String> {

    public CustomListAdapter(Context context, int textViewResourceId,
            String[] objects) {
        super(context, textViewResourceId, objects);
        this.notifyDataSetChanged();
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = getLayoutInflater();
        View row = inflater.inflate(R.layout.layout_row,
                parent, false);

        TextView dateText = (TextView) row.findViewById(whatever);
        TextView visitText = (TextView) row.findViewById(whatever);
        TextView distanceText = (TextView) row.findViewById(R.id.whatever);

                    dateText.setText(DateArray[position]);
                    // do the same for the other 2
        return row;
    }
}
私有类CustomListAdapter扩展了ArrayAdapter{
公共CustomListAdapter(上下文,int textViewResourceId,
字符串[]对象){
超级(上下文、textViewResourceId、对象);
this.notifyDataSetChanged();
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutInflater充气机=getLayoutInflater();
视图行=充气机。充气(R.layout.layout_行,
父母,假);
TextView dateText=(TextView)row.findViewById(无论什么);
TextView visiteText=(TextView)row.findViewById(无论什么);
TextView距离text=(TextView)row.findViewById(R.id.whatever);
setText(DateArray[position]);
//对其他2个也做同样的操作
返回行;
}
}

应该可以正常工作…

您必须使用
自定义适配器创建
自定义listview
,这些链接将帮助您创建listview

一,


2.

您必须使用
自定义适配器创建
自定义listview
,这些链接将帮助您创建listview

一,


2.

您需要使用这3个值创建对象,例如:

public class Obj{
   private String date;
   private String visits;
   private String distance;


   public Obj(String date , String visits, String distance){
      this.date = date;
      this.visits = visits;
      this.distance = distance;
   }
   ... getters and setters stuff...
}
然后必须扩展arrayadapter类

public class ObjAdapter extends ArrayAdapter<Obj>{

    private Context context; 
    private ArrayList<Obj> items;

    public ObjAdapter(Context context, int layoutResId, ArrayList<Obj> data) {
        super(context, layoutResd, data);
        this.context = context;
        this.items = data;
    }

   @Override
        public View getView(int position, View convertView, ViewGroup parent) {
                View v = convertView;
                if (v == null) {
                    LayoutInflater vi =                  (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    v = vi.inflate(R.layout.row, null);
                }
                Obj o = items.get(position);
                if (o != null) {
                        TextView date = (TextView) v.findViewById(R.id.date);
                        TextView visits = (TextView) v.findViewById(R.id.visits);
                        TextView distance = (TextView) v.findViewById(R.id.distance);
                        if (visits != null) {
                              visits.setText("Name: "+o.getVists());                            }
                        if(date != null){
                              date.setText("Status: "+ o.getDate());
                        }
                }
                return v;
        }
公共类ObjAdapter扩展了ArrayAdapter{
私人语境;
私有ArrayList项;
公共对象适配器(上下文、int layoutResId、ArrayList数据){
超级(上下文、布局、数据);
this.context=上下文;
此项=数据;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图v=转换视图;
如果(v==null){
LayoutInflater vi=(LayoutInflater)getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
v=vi.充气(R.布局.行,空);
}
Obj o=项目。获取(位置);
如果(o!=null){
TextView日期=(TextView)v.findViewById(R.id.date);
TextView访问=(TextView)v.findViewById(R.id.visions);
TextView距离=(TextView)v.findViewById(R.id.distance);
如果(访问次数!=null){