我一直在寻找解决方案,但无济于事。
总的来说,我正在尝试用我的SQLite数据库中的数据填充单选按钮。
我首先尝试将数据存储在ListView中,但每次执行此操作时,ListView都会返回我的包名后面带有一个数字(是数据库的索引还是地址?)。它返回的内容看起来像这个“com.example.appname.ClassName@41ca0130”任何想法如何解决这个问题?
部分数据库代码
public List<Plan> getAllPlans(String carrierName)
{
List<Plan> planList = new ArrayList<Plan>();
//String selectQuery = "SELECT * FROM plans";
String selectQuery = "SELECT * FROM " + TABLE_NAME + " WHERE " + PLAN_CARRIER + " = '" + carrierName + "'";
Log.e("PlansHelper", selectQuery);
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
Plan plan = new Plan();
plan.setID(c.getInt((c.getColumnIndex(PLAN_ID))));
plan.setCarrier((c.getString(c.getColumnIndex(PLAN_CARRIER))));
plan.setCarrier((c.getString(c.getColumnIndex(PLAN_NAME))));
planList.add(contact);
}
while (c.moveToNext());
}
return planList;
}
部分活动代码
ListView listContent = (ListView) findViewById(R.id.lvMain);
List<Plan> plan = new ArrayList<Plan>();
plan=db.getAllPlans("Meteor");
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, plan);
listContent.setAdapter(adapter);
如果您有任何想法,请告诉我,我会尝试任何建议。另外,如果你能指出我如何完成用SQLite数据填充单选按钮的整体任务的正确方向;那太棒了。
谢谢。
答案 0 :(得分:0)
您需要覆盖Plan类的toString()。 请参阅ArrayAdapter的Android参考。
Android Reference “覆盖对象的toString()方法,以确定列表中项目的显示内容。”
希望这有帮助!