Android 从列表视图插入项目和子项目
我的列表视图有问题,我显示了一个项目和子项目,我想在数据库中插入这两个项目,但它不起作用!!错误是我无法将其强制转换为文本视图 请有人帮帮我 这是我得到的错误:Android 从列表视图插入项目和子项目,android,android-listview,android-sqlite,Android,Android Listview,Android Sqlite,我的列表视图有问题,我显示了一个项目和子项目,我想在数据库中插入这两个项目,但它不起作用!!错误是我无法将其强制转换为文本视图 请有人帮帮我 这是我得到的错误: java.lang.ClassCastException: android.widget.TwoLineListItem cannot be cast to android.widget.TextView 下面是列表视图的代码: String[] databaseColumnNames = new String[] {
java.lang.ClassCastException: android.widget.TwoLineListItem cannot be cast to android.widget.TextView
下面是列表视图的代码:
String[] databaseColumnNames = new String[] { DBAdapter.col_N_Ordre,DBAdapter.col_Nom_prénom};
int[] toViewIDs = new int[] { android.R.id.text1,android.R.id.text2 };
SimpleCursorAdapter myCursordapter = new SimpleCursorAdapter(this,android.R.layout.simple_expandable_list_item_2 , cursor, databaseColumnNames, toViewIDs);
ListView list = (ListView) findViewById(android.R.id.list);
list.setAdapter(myCursordapter);
插入代码如下:
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(final AdapterView<?> arg0, View arg1,
final int position, long arg3) {
Toast.makeText(getApplicationContext(), " " + position, Toast.LENGTH_LONG).show();
final String s = ((TextView)arg1).getText().toString();
db.insertest(s);
将以下代码放入listview项中,然后单击listener
TextView v1 = (TextView)arg1.findViewById(android.R.id.text1);
String first = v1.getText().toString();
TextView v2 = (TextView)arg1.findViewById(android.R.id.text2);
String second = v2.getText().toString();
ContentValues cv = new ContentValues();
cv.put(DBAdapter.col_Region, first);
cv.put(DBAdapter._id, second);
myCursordapter.notifyDataSetChanged();
list.setAdapter(adapter);
DBAdapter sql_Adapter = new DBAdapter(context);
sql_Adapter.open();
db.insertest(cv);
sql_Adapter.close();
发布日志和查询,以便将数据插入数据库或相关代码感谢Adrain的响应,我对一个项目执行了相同的代码,效果很好,但当我决定显示两个项目时,我确实收到了以下错误:无法将其转换为列表视图。如何解决这个问题???@Adrian:请看我编辑的问题。你从listview中的第二个值是从哪里获取的?这就是问题所在,我不知道如何获取第二个值!?我试图在一列中插入两者。你知道如何进行吗?
TextView v1 = (TextView)arg1.findViewById(android.R.id.text1);
String first = v1.getText().toString();
TextView v2 = (TextView)arg1.findViewById(android.R.id.text2);
String second = v2.getText().toString();
ContentValues cv = new ContentValues();
cv.put(DBAdapter.col_Region, first);
cv.put(DBAdapter._id, second);
myCursordapter.notifyDataSetChanged();
list.setAdapter(adapter);
DBAdapter sql_Adapter = new DBAdapter(context);
sql_Adapter.open();
db.insertest(cv);
sql_Adapter.close();