2011-07-06 53 views
1

其实我已经创建了一个customListview,在这里我想动态地添加项目..但在我的情况下,第一个项目插入任何问题,但当我尝试插入第二个项目..我给一个错误,我会发送在code..if有谁知道请建议吧..Listview问题

代码main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
android:id="@+id/relativeLayout1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<ListView 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:id="@+id/historyFrmLstView2" 
android:layout_alignParentLeft="true" 
android:layout_below="@+id/historyFrmLstView1" 
android:layout_marginTop="20dip" 
android:layout_marginBottom="10dip"> 
</ListView> 

</RelativeLayout> 

代码ListView.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
android:id="@+id/relativeLayout1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:padding="5dip" 
android:background="#00000000"> 
<TextView 
    android:textSize="18dp" 
    android:layout_height="wrap_content" 
    android:textColor="#000000" 
    android:background="@drawable/history_scroll_title_label_bg" 
    android:layout_width="wrap_content" 
    android:id="@+id/txtHistoryDisplay" 
    android:layout_below="@+id/txtViewHeading" 
    android:layout_marginTop="0dip" 
    android:layout_marginLeft="2dip"> 
</TextView> 

</RelativeLayout> 

代码main.java

public void displayHistory() 
{ 
    String strDisplay[] = {" "}; 
    historyFrmLstView2 = (ListView) findViewById(R.id.historyFrmLstView2); 
    int iHistCount = CycleManager.getSingletonObject().getHistoryCount(); 
    int i; 
    SimpleDateFormat sdFormatter = new SimpleDateFormat("dd-MMMM-yyyy"); 

    for (i=0; i<iHistCount; i++) 
    { 
      strDisplay[i] = ""; 

      Date dtHist = CycleManager.getSingletonObject().getHistoryDate(iHistCount); 

      strDisplay[i]=sdFormatter.format(dtHist.getTime()); 

      aHistFrmAdpter2 = new HistoryFrmCustomAdapter2(this,strDisplay); 
      historyFrmLstView2.setAdapter(aHistFrmAdpter2); 
    } 
} 

代码定制Adapter.java

public class HistoryFrmCustomAdapter2 extends BaseAdapter 
{ 

public String heading1[]; 
public Activity context; 
public LayoutInflater inflater; 

public HistoryFrmCustomAdapter2(Activity context,String[] heading1) 
{ 
    super(); 
    this.context = context; 
    this.heading1=heading1; 
    this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 
public int getCount() 
{ 
    return heading1.length; 
} 

public Object getItem(int position) 
{ 
    return null; 
} 
public long getItemId(int position) 
{ 
    return 0; 
} 
public static class ViewHolder 
{ 
    TextView txtHistoryDisplay; 
} 
public View getView(int position, View convertView, ViewGroup parent) 
{ 
    ViewHolder holder; 

    if(convertView==null) 
    { 
     holder = new ViewHolder(); 
     convertView = inflater.inflate(R.layout.histryfrm_listview2, null); 

     holder.txtHistoryDisplay =(TextView) convertView.findViewById(R.id.txtHistoryDisplay); 

     convertView.setTag(holder); 
    } 
    else 
     holder=(ViewHolder)convertView.getTag(); 
    holder.txtHistoryDisplay.setText(heading1[position]); 
    return convertView; 
} 
} 
+0

什么错误....是否强制关闭? –

+0

什么是错误? – Sarmad

+0

叶它强制关闭错误 – AndroidDev

回答

0

嗨,我觉得可以在下面的代码中使用..

public void displayHistory() 
{ 
    String strDisplay[] = {" "}; 
    historyFrmLstView2 = (ListView) findViewById(R.id.historyFrmLstView2); 
    int iHistCount = CycleManager.getSingletonObject().getHistoryCount(); 
    int i; 
    SimpleDateFormat sdFormatter = new SimpleDateFormat("dd-MMMM-yyyy"); 

    for (i=0; i<iHistCount; i++) 
    { 
      strDisplay[i] = ""; 

      Date dtHist = CycleManager.getSingletonObject().getHistoryDate(iHistCount); 

      strDisplay[i]=sdFormatter.format(dtHist.getTime()); 


    } 

    aHistFrmAdpter2 = new HistoryFrmCustomAdapter2(this,strDisplay); 
    historyFrmLstView2.setAdapter(aHistFrmAdpter2); 
} 
+0

没有它不工作相同的错误..“停止的应用程序” – AndroidDev

+0

你可以发布logcat的错误? – Nikhil

+0

实际上运行在设备中时发生错误..当我添加第一个日期它完美的工作,但是当我添加第二个日期它终止..错误是..“应用程序已经停止unexpextedly” – AndroidDev

0

会有你的字符串数组strDisplay [iHistCount中只有一个元素]。因为你每次都把价值放在最后的位置。用i替换iHistCount。

+0

你是我的唯一..它在代码中的错误 – AndroidDev