2014-01-23 8 views
0

Я написал свое первое приложение для Android, просто CRUD. Но после того, как я изменил GridView к TableLayout я получаю следующее сообщение об ошибке:android.widget.TableRow не может быть добавлен в android.widget.TableLayout

android.widget.TableRow cannot be cast to android.widget.TableLayout 

Вот моя активность:

public class AllActivity extends Activity { 

    private SQLiteDatabase sampleDB; 
    private TableLayout tableList; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.all); 





     sampleDB = this.openOrCreateDatabase("my_app", 
       SQLiteDatabase.CREATE_IF_NECESSARY, null); 


     String query = "SELECT * FROM BOOKS;"; 
     Cursor cursor = sampleDB.rawQuery(query, null); 


     tableList = (TableLayout)findViewById(R.id.tableList); 

     if(cursor.moveToFirst()) 
     { 
      do 
      { 
       TableRow row = new TableRow(this); 

       TextView id = new TextView(this); 
       id.setText(""+cursor.getLong(0)); 

       TextView title = new TextView(this); 
       title.setText(cursor.getString(1)); 

       TextView author = new TextView(this); 
       author.setText(cursor.getString(2)); 


       row.addView(id); 
       row.addView(title); 
       row.addView(author); 

       tableList.addView(row); 



      }while(cursor.moveToNext()); 

     } 

    } 


} 

Мое мнение:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 


    <TableRow 
     android:id="@+id/tableList" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </TableRow> 

</LinearLayout> 

Любые советы Что я делаю не так?
Я сделал все как в Print out ArrayList content in Android TableLayout, но не могу заставить его работать.

ответ

2
android.widget.TableRow cannot be cast to android.widget.TableLayout 

Вы

<TableRow 
    android:id="@+id/tableList" // table row 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
</TableRow> 

Но при инициализации у вас есть

tableList = (TableLayout)findViewById(R.id.tableList); 
// casting tablerow to tablelayout 

Вы можете проверить

http://www.mkyong.com/android/android-tablelayout-example/

Вы можете также найти примеры сервировки стола в образцах SDk @

андроид-SDk/образцы/андроида-17/ApiDemos/Рез/макет/table_layout_1.xml

+0

Конечно! Черт ... глупая ошибка. Я был уверен, что я перетащил TableLayout из визуального редактора. Спасибо за помощь. Я соглашусь ответить в 8мин – user1409508

Смежные вопросы