Android 如何为预填充SQLite数据列表添加自定义列表视图?
列表视图正在工作。但我想为此数据列表添加自定义列表视图。我正在从预填充数据库检索数据。这就是我试过的。我在活动课上出错了 自定义列表视图适配器Android 如何为预填充SQLite数据列表添加自定义列表视图?,android,sqlite,listview,Android,Sqlite,Listview,列表视图正在工作。但我想为此数据列表添加自定义列表视图。我正在从预填充数据库检索数据。这就是我试过的。我在活动课上出错了 自定义列表视图适配器 public class CustomListViewAdapter extends ArrayAdapter<Organization> { Context context; public CustomListViewAdapter(Context context, int layout,
public class CustomListViewAdapter extends ArrayAdapter<Organization> {
Context context;
public CustomListViewAdapter(Context context, int layout,
List<Organization> items) {
super(context, layout, items);
this.context = context;
}
/*private view holder class*/
private class ViewHolder {
TextView txtTitle;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
Organization rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.single_row_item, null);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView.findViewById(R.id.org_name);
convertView.setTag(holder);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
holder.txtTitle.setText(rowItem.getTitle());
return convertView;
}}
活动课
public class ContactView extends Activity {
private ListView listView;
private ListView listView1;
List<Organization> rowItems;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_view);
this.listView = (ListView) findViewById(R.id.listView);
DBAccess databaseAccess = DBAccess.getInstance(this);
databaseAccess.open();
List<String> quotes = databaseAccess.getQuotes(getIntent().getStringExtra("ID_EXTRA"));
databaseAccess.close();
listView = (ListView) findViewById(R.id.listView);
CustomListViewAdapter adapter = new CustomListViewAdapter(this,
R.layout.single_row_item, quotes);
listView.setAdapter(adapter);
}}
必需:上下文、int、列表
找到:ContactView,int,List
原因:无法通过方法调用转换将实际参数列表转换为列表请在
databaseAccess.close()之后进行这些更改代码>
List rowItem=new ArrayList();
for(字符串引号:引号){
组织临时=新组织(报价);
行项目。添加(临时);
}
listView=(listView)findViewById(R.id.listView);
CustomListViewAdapter=新的CustomListViewAdapter(此,
R.layout.single_row_item,rowItem);
setAdapter(适配器);
当前代码的问题是CustomListViewAdapter
的构造函数期望第三个参数为List
,类型为Organization
,但您正在传递List
类型为String的?为什么要在活动中初始化listView两次?删除一个初始化。我添加了一个错误。删除了一个初始化。谢谢,因为您正在传递列表和CustomListViewAdapter,我将其更改为列表引号。现在我在那一行遇到了一个错误。不要使用任何CustomListViewAdapter
,而是使用[Simple]光标或适配器
public class ContactView extends Activity {
private ListView listView;
private ListView listView1;
List<Organization> rowItems;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_view);
this.listView = (ListView) findViewById(R.id.listView);
DBAccess databaseAccess = DBAccess.getInstance(this);
databaseAccess.open();
List<String> quotes = databaseAccess.getQuotes(getIntent().getStringExtra("ID_EXTRA"));
databaseAccess.close();
listView = (ListView) findViewById(R.id.listView);
CustomListViewAdapter adapter = new CustomListViewAdapter(this,
R.layout.single_row_item, quotes);
listView.setAdapter(adapter);
}}
Error:(81, 41) error: constructor CustomListViewAdapter in class CustomListViewAdapter cannot be applied to given types;
List<Organization> rowItem=new ArrayList<Organization>();
for(String quote:quotes){
Organization temp=new Organization(quote);
rowItem.add(temp);
}
listView = (ListView) findViewById(R.id.listView);
CustomListViewAdapter adapter = new CustomListViewAdapter(this,
R.layout.single_row_item, rowItem);
listView.setAdapter(adapter);