2014-02-14 105 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