列表视图在android中不显示?
我正在尝试从SQLite获取数据到列表视图,但我的列表视图未显示列表视图在android中不显示?,android,sqlite,android-listview,Android,Sqlite,Android Listview,我正在尝试从SQLite获取数据到列表视图,但我的列表视图未显示 任何东西我不理解这个问题,因为logcat中没有错误。 请给我提示或建议。 这是我的示例代码 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.locprofile); ArrayAdapter<Model> ad
任何东西我不理解这个问题,因为logcat中没有错误。
请给我提示或建议。
这是我的示例代码
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);
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//setContentView(R.layout.locprofile);
ArrayAdapter=新的InteractiveArrayAdapter(此,
getModel());
setListAdapter(适配器);}
专用void setListAdapter(ArrayAdapter适配器){
//TODO自动生成的方法存根
}
私有列表getModel()
{
列表=新的ArrayList();
final MySQLiteHelper m=新的MySQLiteHelper(getBaseContext());
最终列表LocWiseProfile=m.getAllLocWiseProfile();
对于(最终LocWiseProfileBeans cn:LocWiseProfile){
add(get(cn.getLocname());
list.add(get(cn.getSelectedprofile());
//首先选择其中一项
list.get(1).setSelected(true);
}
退货清单;
}
私有模型获取(字符串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;
}
公共类InteractiveArrayAdapter扩展了ArrayAdapter{
私人最终名单;
私人最终活动背景;
公共InteractiveArrayAdapter(活动上下文、列表)
{
super(上下文、R.layout.locprofile、列表);
this.context=上下文;
this.list=列表;
}
静态类视窗夹{
受保护的文本查看文本;
受保护复选框;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=空;
if(convertView==null){
LayoutInflater充气器=上下文。getLayoutInflater();
视图=充气机充气(R.layout.locprofile,空);
最终ViewHolder ViewHolder=新的ViewHolder();
viewHolder.text=(TextView)view.findViewById(R.id.label);
viewHolder.checkbox=(checkbox)view.findViewById(R.id.check);
viewHolder.checkbox
.setOnCheckedChangeListener(新建CompoundButton.OnCheckedChangeListener(){
@凌驾
检查更改后的公共无效(复合按钮视图,
布尔值(已检查){
模型元素=(模型)viewHolder.checkbox
.getTag();
element.setSelected(buttonView.isChecked());
}
});
view.setTag(viewHolder);
viewHolder.checkbox.setTag(list.get(position));
}否则{
视图=转换视图;
((ViewHolder)view.getTag()).checkbox.setTag(list.get(position));
}
ViewHolder=(ViewHolder)view.getTag();
holder.text.setText(list.get(position.getName());
holder.checkbox.setChecked(list.get(position.isSelected());
返回视图;
}
}删除:
private void setListAdapter(ArrayAdapter<Model> adapter) {
// TODO Auto-generated method stub
}
private void setListAdapter(ArrayAdapter适配器){
//TODO自动生成的方法存根
}
然后重试。删除:
private void setListAdapter(ArrayAdapter<Model> adapter) {
// TODO Auto-generated method stub
}
private void setListAdapter(ArrayAdapter适配器){
//TODO自动生成的方法存根
}
然后重试。并更换
setListAdapter(适配器)代码>通过设置适配器(适配器)代码>。设定一个contentView@njzk2是的,如果他正在扩展一个简单的活动
,他将不得不在他的ListView
对象上调用setAdapter()
,我只是假设他扩展ListActivity
setAdapter
是来自ListActivity
的方法。如果setListAdapter
是一个继承的方法,那么他无法像that@njzk2ListActivity
没有方法setAdapter()
,ListView
有此方法。他可能扩展了一个简单的Activity
,并尝试使用ListActivity
中不存在的方法setListAdapter()
,当Eclipse抱怨时,他使用了CTRL+1
并简单地创建了一个私有方法。是的,如果我能正确读取类名,这正是我的意思。谢谢并更换setListAdapter(适配器)代码>通过设置适配器(适配器)代码>。设定一个contentView@njzk2是的,如果他正在扩展一个简单的活动
,他将不得不在他的ListView
对象上调用setAdapter()
,我只是假设他扩展ListActivity
setAdapter
是来自ListActivity
的方法。如果setListAdapter
是一个继承的方法,那么他无法像that@njzk2ListActivity
没有方法setAdapter()
,ListView
有此方法。他可能扩展了一个简单的Activity
,并尝试使用ListActivity
中不存在的方法setListAdapter()
,当Eclipse抱怨时,他使用了CTRL+1
并简单地创建了一个私有方法。是的,如果我能正确读取类名,这正是我的意思。谢谢