2012-03-09 70 views
0

我想從SQLite獲取數據列表視圖,但我的列表視圖不顯示
什麼。我不明白問題,因爲在logcat中沒有錯誤。
請給我提示或建議。
這裏是我的示例代碼..列表視圖不顯示在android?

protected void onCreate(Bundle savedInstanceState) { 


    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.locprofile); 
    ArrayAdapter<Model> adapter = new InteractiveArrayAdapter(this, 
      getModel()); 
    setListAdapter(adapter);} 

private void setListAdapter(ArrayAdapter<Model> adapter) { 
    // TODO Auto-generated method stub 

} 

private List<Model> getModel() 
{ 
    List<Model> list = new ArrayList<Model>(); 
    final MySQLiteHelper m=new MySQLiteHelper(getBaseContext()); 
    final List<LocWiseProfileBeans> LocWiseProfile= m.getAllLocWiseProfile();  

    for (final LocWiseProfileBeans cn : LocWiseProfile) { 



    list.add(get(cn.getLocname())); 
    list.add(get(cn.getSelectedprofile())); 

    // Initially select one of the items 
    list.get(1).setSelected(true); 

    } 
    return list; 
} 

private Model get(String s) { 
    return new Model(s); 
} 

InteractiveArrayAdapter.java

public class InteractiveArrayAdapter extends ArrayAdapter<Model> { 

private final List<Model> list; 
private final Activity context; 

public InteractiveArrayAdapter(Activity context, List<Model> list) 
{ 
    super(context, R.layout.locprofile, list); 
    this.context = context; 
    this.list = list; 
} 

static class ViewHolder { 
    protected TextView text; 
    protected CheckBox checkbox; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    View view = null; 

    if (convertView == null) { 


     LayoutInflater inflator = context.getLayoutInflater(); 
     view = inflator.inflate(R.layout.locprofile, null); 

     final ViewHolder viewHolder = new ViewHolder(); 

     viewHolder.text = (TextView) view.findViewById(R.id.label); 
     viewHolder.checkbox = (CheckBox) view.findViewById(R.id.check); 
     viewHolder.checkbox 
       .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 

        @Override 
        public void onCheckedChanged(CompoundButton buttonView, 
          boolean isChecked) { 
         Model element = (Model) viewHolder.checkbox 
           .getTag(); 
         element.setSelected(buttonView.isChecked()); 

        } 
       }); 
     view.setTag(viewHolder); 
     viewHolder.checkbox.setTag(list.get(position)); 

    } else { 

     view = convertView; 
     ((ViewHolder) view.getTag()).checkbox.setTag(list.get(position)); 

    } 

    ViewHolder holder = (ViewHolder) view.getTag(); 
    holder.text.setText(list.get(position).getName()); 
    holder.checkbox.setChecked(list.get(position).isSelected()); 


    return view; 
} 

}

+0

list.size().....? – 2012-03-09 15:10:59

回答

4

刪除:

private void setListAdapter(ArrayAdapter<Model> adapter) { 
    // TODO Auto-generated method stub 

} 

,然後再試一次。

+0

並用'setAdapter(adapter);'替換'setListAdapter(adapter);'。並且設置contentView – njzk2 2012-03-09 15:38:24

+0

@ njzk2是的,如果他擴展了一個簡單的'Activity',他將不得不在他的ListView對象上調用'setAdapter()',我只是假設他擴展了'ListActivity'。 – Luksprog 2012-03-09 15:43:59

+0

'setAdapter'是來自'ListActivity'的方法。如果'setListAdapter'是一個繼承的方法,他不能像這樣限制可見性。 – njzk2 2012-03-09 16:06:31