2010-02-25 42 views
1

我有一个自定义适配器为arraylist。Android自定义适配器与酒吧进度

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 

<ProgressBar android:id="@+id/downloadprogress" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="200dip" 
    android:layout_height="wrap_content" 
    android:max="100" 
    android:progress="50" 
    android:secondaryProgress="75" /> 
<TextView android:id="@+id/tripsname" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 


</LinearLayout> 

,但是当我尝试访问该进度条在适配器

private class MyAdapter extends ArrayAdapter<Trip> { 

    int resource; 
    public MyAdapter(Context context, int resource, ArrayList<Trip> items) { 
     super(context, resource,items); 
     this.resource=resource; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LinearLayout tripListItemView; 
     final Trip t = getItem(position); 
     String name = t.getName(); 
     boolean offline = t.isOffline() ; 
     if(convertView==null) { 
      tripListItemView = new LinearLayout(getContext()); 
      String inflater = Context.LAYOUT_INFLATER_SERVICE; 
      LayoutInflater vi; 
      vi = (LayoutInflater)getContext().getSystemService(inflater); 
      vi.inflate(resource, tripListItemView, true); 
     } 
     else { 
      tripListItemView = (LinearLayout) convertView; 
     } 
     setProgressBarVisibility(true); 
     View v = findViewById(R.id.downloadprogress); 
     ProgressBar progressHorizontal = (ProgressBar) findViewById(R.id.downloadprogress); 

它总是返回null,喜欢它没有找到进度条。但是,进度条显示在列表中,但我需要在适配器内部访问它。

有人知道解决方案吗?

感谢

回答

2

在你的代码奇怪的是,findViewById()ArrayAdapter下访问......我不明白你的代码可以编译如何...

顺便说一句,你应该使用在getView(...)参数中传递的视图来检索您的进度条。

ProgessBar progressBar = (ProgressBar) convertView.findViewById(R.id.downloadprogressbar); 
+0

但在我的情况下,我应该使用triplistview,但答案是正确的。谢谢!! – xger86x 2010-02-25 12:51:01