Android的填充的ListView用字符串数组用字、数组、Android、ListView

由网友(懦弱给誰看)分享简介:我有3个 String []数组 DateArray [] = {17/09/2012,18/09/2012,19/09/2012};访问[] = {4,10,2};距离[] = {30,100,45}; 我要显示此数组中这样我所做的XML我只想填充这些3个值这是一个 ListActivity 一个ListView...

我有3个 String []数组

  DateArray [] = {17/09/2012,18/09/2012,19/09/2012};访问[] = {4,10,2};距离[] = {30,100,45}; 

我要显示此数组中这样我所做的XML我只想填充这些3个值这是一个 ListActivity 一个ListView

我试图

我如何能做到这一点。

有关点击ListView中我使用

  listView.setAdapter(新ObjAdapter(这一点,R.layout.claimlistview,物品));           listView.setOnItemClickListener(新AdapterView.OnItemClickListener(){               @覆盖               公共无效onItemClick(适配器视图<>为arg0,ARG1查看,INT位置,长ARG3){                 对象o = listView.getItemAtPosition(位置);                    TextView的T1 =(的TextView)findViewById(R.id.C​​laimDate);                    如果(T1!= NULL){                        ClaimListBean mSelected;                        INT IDX =位置;                        mSelected = m_adapter.getItem(IDX);                        字符串日期= mSelected.getDate();                        // StringTokenizer的令牌=新的StringTokenizer(日期,();                        //字符串第一= tokens.nextToken();                        //字符串第二= tokens.nextToken();                        串访问= mSelected.getVisit();                        字符串距离= mSelected.getDistance();                        //串EditedSecond = second.replace(),);                    意向意图=新意图(DRSTClaimList.this,DRSTClaimDetail.class);                    intent.putExtra(日期,日期);                    //intent.putExtra("Date,第一);                    //intent.putExtra("Day,EditedSecond);                    intent.putExtra(距离,距离);                    intent.putExtra(访问,访问);                    startActivity(意向);                    } 
VB 将 一个 listview 的数据 复制 到 另一个 listview

解决方案

您需要与那些3的值创建对象,例如:

 公共类的OBJ {   私人字符串日期;   私人字符串考察;   私人字符串距离;   公开的OBJ(日期字符串,字符串访问,字符串的距离){      this.date =日期;      this.visits =考察;      this.distance =距离;   }   ... getter和setter的东西...} 

然后你必须扩展arrayadapter类

 公共类ObjAdapter扩展ArrayAdapter<&的OBJ GT; {    私人上下文的背景下;    私人的ArrayList<&的OBJ GT;项目;    公共ObjAdapter(上下文的背景下,诠释layoutResId,ArrayList的<&的OBJ GT;数据){        超级(上下文,layoutResd,数据);        this.context =背景;        this.items =数据;    }   @覆盖        公共查看getView(INT位置,查看convertView,父母的ViewGroup){                视图V = convertView;                如果(V == NULL){                    LayoutInflater VI =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);                    V = vi.inflate(R.layout.row,NULL);                }                OBJ O = items.get(位置);                如果(O!= NULL){                        TextView的日期=(TextView中)v.findViewById(R.id.date);                        TextView的访问=(TextView中)v.findViewById(R.id.visits);                        TextView的距离=(TextView中)v.findViewById(R.id.distance);                        如果(考察!= NULL){                              visits.setText(姓名:+ o.getVists()); }                        如果(日期!= NULL){                              date.setText(状态:+ o.getDate());                        }                }                返回伏;        } 

在你到底有没有打电话给你的ListView :)

方法setListAdapter

编辑:在标准活动是这样的(抱歉错误):

 公共无效的onCreate(捆绑icycle){   super.onCreate(icycle);   的setContentView(R.layout.listactivity);   ListView控件的ListView =(ListView控件)findViewById(R.id.listview);   ArrayList的<&的OBJ GT;项目=新的ArrayList<&的OBJ GT;();   items.add(新的OBJ(日期,访问,);   items.add(新的OBJ(日期,访问,):   items.add(新的OBJ(日期,访问,):   listView.setListAdapter(新ObjAdapter(这一点,R.layout.list_row,物品));} 

在此,你在名单上有3项。

检查此链接:的http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

I have 3 String[] array

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

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

Distance[]={"30","100","45"};

I want to show this Array in a ListView like this i have made the XML i just want to populate these 3 values This is a ListActivity

i have tried to

How Can i do That

for Clicking the ListView i am using

           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);
                    }

解决方案

You need to create object with those 3 values, for example:

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...
}

and then you have to extend arrayadapter class

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;
        }

At the end you have to call method setListAdapter on your listView :)

EDIT: In standard activity is like this (sorry for bugs):

public void onCreate(Bundle icycle)
{
   super.onCreate(icycle);
   setContentView(R.layout.listactivity);
   ListView listView = (ListView)findViewById(R.id.listview);
   ArrayList<Obj> items = new ArrayList<Obj>();
   items.add(new Obj("date", "visits","   ");
   items.add(new Obj("date", "visits","   "):
   items.add(new Obj("date", "visits","   "):
   listView.setListAdapter(new ObjAdapter(this, R.layout.list_row, items));
}

After this, You got 3 items on the list.

Check this link: http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

;)

阅读全文

相关推荐

最新文章