2014-02-14 62 views
1

我对列表视图有问题,我显示一个项目和子项目,我想在数据库中插入这两个项目,但它不起作用!错误是我不能将它转换成文本视图 请有人帮助我。从列表视图中插入项目和子项目

这是错误,我得到:

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); 

查询是:

public long insertest(String region) { 
     ContentValues initialValues = new ContentValues(); 
      initialValues.put(col_Region,region); 
     //initialValues.put(col_Provence_prefecture); 
      return db.insert(MENAGE,null, initialValues); 
    } 
+0

发表您的logcat和查询的响应中插入数据到数据库或相关的代码 – Andrain

+0

感谢Adrain,我也做了同样的代码有一个项目,它工作得很好,但是当我决定显示两个时,我确实得到了这个错误:无法将它转换为列表视图。如何解决? –

+0

@Adrian:查看我编辑的问题。 –

回答

1

认沽按照您的列表视图项点击收听代码

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(); 
+0

我很感谢您的帮助,谢谢:) –

+0

Happy来帮你 :) – Andrain