2011-04-16 110 views
2

在这里,我附上我的问题和代码的快照。 它只显示我的内容作为对象,但完美地显示组名。 这个问题的卡扣被给出如下链接只是去throught这一形象显示对象而不是字符串

“http://imageupload.org/?d=4DA941521"(snapshot)

=>我要特别子数据groupname,但即时获取组名而不是子数据。此

package com.bestdambikers; 
import android.app.ListActivity; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.Collections; 
import java.util.List; 

public class SectionedDemo extends ListActivity { 


    String strUrl = "http://192.168.5.10/ijoomer_development/index.php?option=com_ijoomer&plg_name=jomsocial&pview=user&ptask=field_list&userid=80&sessionid="+ConstantData.session_id+"&tmpl=component"; 
     DetailBean dBean; 
     XmlParser parser; 
     ArrayList<Object> result; 
     List<DetailBean> list; 

    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.header_main); 

     //dBean = new DetailBean(); 
     parser = new XmlParser(strUrl, new DetailBean()); 
     result = parser.ParseUrl("data", "group"); 
     int r = result.size(); 

     for(int i=0; i<result.size(); i++) 
     { 

      dBean = (DetailBean)result.get(i); 
      list=Arrays.asList(dBean); 
      Collections.shuffle(list); 
      adapter.addSection(dBean.group_name, 
       new ArrayAdapter<DetailBean>(this, 
         android.R.layout.simple_list_item_1, 
         list)); 
     } 
     setListAdapter(adapter); 
    } 

    SectionedAdapter adapter=new SectionedAdapter() { 
     protected View getHeaderView(String caption, int index, 
       View convertView, 
       ViewGroup parent) { 
      TextView result=(TextView)convertView; 

      if (convertView==null) { 
       result=(TextView)getLayoutInflater() 
       .inflate(R.layout.header, 
         null); 
      } 

      result.setText(caption); 

      return(result); 
     } 
    }; 
} 

DetailBean.java

public class DetailBean 
{ 
    public String data = null; 
    public String code = null; 
    public String fields = null; 
    public String group_name = null; 
    public String field = null; 
    public String id = null; 
    public String name = null; 
    public String value = null; 
    public String status = null; 
    public String required = null; 
    public String type = null; 

    public DetailBean() 
    { 
     this("","","","","","","","","","",""); 
    } 

    public DetailBean(String data,String code,String fields, String group_name,String field, String id,String name,String value,String status,String required,String type) 
    { 
     this.data = data; 
     this.code = code; 
     this.fields = fields; 
     this.group_name = group_name; 
     this.field = field; 
     this.id = id; 
     this.name = name; 
     this.value = value; 
     this.status = status; 
     this.required = required; 
     this.type = type; 
    } 

} 

回答

2

看起来您正在通过detailBeanInstance.toString()创建的方法的参数getHeaderView中获得String

您应该重写DetailBean类中的toString方法以返回所需内容。

这样的覆盖将是:

@Override 
public String toString() 
{ 
    //You should populate this string with the data 
    //you need inside the TextView 
    return this.group_name + " " + this.data; 
} 

广场上方的DetailBean类中的方法,所以它看起来像:

public class DetailBean 
{ 
    // You should use private members, and create getters and setters to them 
    public String data = null; 
    public String code = null; 
    public String fields = null; 
    public String group_name = null; 
    public String field = null; 
    public String id = null; 
    public String name = null; 
    public String value = null; 
    public String status = null; 
    public String required = null; 
    public String type = null; 

    public DetailBean() 
    { 
     this("", "", "", "", "", "", "", "", "", "", ""); 
    } 

    public DetailBean(String data, String code, String fields, 
      String group_name, String field, String id, String name, 
      String value, String status, String required, String type) 
    { 
     this.data = data; 
     this.code = code; 
     this.fields = fields; 
     this.group_name = group_name; 
     this.field = field; 
     this.id = id; 
     this.name = name; 
     this.value = value; 
     this.status = status; 
     this.required = required; 
     this.type = type; 
    } 

    @Override 
    public String toString() 
    { 
     // You should populate this string with the data 
     // you need inside the TextView 
     return this.group_name + " " + this.data; 
    } 
} 
+0

我也在这里加入Detailbean类。所以请给我想法在它做什么。 – Saurabh 2011-04-16 07:27:55

+0

我已经用示例'toString()'实现扩展了我的答案。 – rekaszeru 2011-04-16 07:39:47

+0

谢谢..它适用于从对象转换为字符串(获取组名称,而不是子数据),但我想要组名称的子数据。 – Saurabh 2011-04-16 08:41:14

0

DetailBean

代码缺少toString()方法,以便从父方法(即Object)拍摄,这只是打印类名+它的地址。

0

一个简单的解决方案可能会被更新DetailBean包括覆盖toString方法可以为DetailBean对象检索所需的任何字符串表示形式。

(啊,我被打了4分2分。)

相关问题