0
我創建了一個數據庫,其內容顯示在表格佈局中。當我插入數據庫時數據顯示在表格中。直到這工作正常。但問題是,當我點擊一行其內容不顯示在烤麪包(而不是如果我想顯示在另一個頁面)。只有最後一行被點擊,此外,其列只顯示索引設置。提前致謝。顯示從數據庫中檢索表格的整行數據
這是我的XML頁面
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/gradientb"
android:id="@+id/tableLayout1"
android:shrinkColumns="*"
android:stretchColumns="*" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/deliverylistbar" />
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/TextView0"
android:gravity="center|left"
android:text="Id"
android:textColor="@android:color/black"
android:textSize="20dp"
android:textStyle="bold"
android:typeface="serif" >
</TextView>
<TextView
android:id="@+id/TextView1"
android:gravity="center|left"
android:text="Items"
android:textColor="@android:color/black"
android:textSize="20dp"
android:textStyle="bold"
android:typeface="serif" >
</TextView>
<TextView
android:id="@+id/TextView2"
android:gravity="center|left"
android:text="Location"
android:textColor="@android:color/black"
android:textSize="18dp"
android:textStyle="bold"
android:typeface="serif" >
</TextView>
<TextView
android:id="@+id/TextView3"
android:gravity="center|left"
android:text="PickBy"
android:textColor="@android:color/black"
android:textSize="18dp"
android:textStyle="bold"
android:typeface="serif" >
</TextView>
<TextView
android:id="@+id/TextView4"
android:gravity="center|left"
android:text="Status"
android:textColor="@android:color/black"
android:textSize="18dp"
android:textStyle="bold"
android:typeface="serif" >
</TextView>
</TableRow>
</TableLayout>
現在SampleTableActivitys.java頁面在這裏給出....
public class SampleTableActivity extends Activity {
/** Called when the activity is first created. */
SQLiteDatabase database;
private static String DBNAME = "sample.db";
private static String TABLE = "test";
TableLayout tableLayout;
TableRow row;
TextView firstCol;
TextView secondCol;
TextView thirdCol;
TextView fourthCol;
TextView fifthCol;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tableLayout=(TableLayout)findViewById(R.id.tableLayout1);
createDB();
insertValues();
displayDB();
row.setClickable(true);
row.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Toast.makeText(getApplicationContext(), " "+row.getTag(),
Toast.LENGTH_LONG).show();
view.setBackgroundColor(Color.WHITE);
}
});
}
創建的列使用該...
private void displayDB() {
database=openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
if(database!=null)
{
Cursor cursor=database.rawQuery("SELECT * FROM "+ TABLE, null);
Integer index0=cursor.getColumnIndex("ID");
Integer index1 = cursor.getColumnIndex("ITEMS");
Integer index2 = cursor.getColumnIndex("LOCATION");
Integer index3 = cursor.getColumnIndex("NAME");
Integer index4 = cursor.getColumnIndex("STATUS");
if(cursor.getCount()>0)
{
cursor.moveToFirst();
do
{
row=new TableRow(this);
row.setId(100);
row.setTag(cursor.getString(index0));
row.setTag(cursor.getString(index1));
row.setTag(cursor.getString(index2));
row.setTag(cursor.getString(index3));
row.setTag(cursor.getString(index4));
row.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
/*Setting up the first coloumn parameters*/
firstCol=new TextView(this);
firstCol.setText(cursor.getString(index0));
firstCol.setTextSize(16);
firstCol.setTextColor(Color.DKGRAY);
firstCol.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
row.addView(firstCol); //adding coloumn to row
/*Setting up the second coloumn parameters*/
secondCol=new TextView(this);
secondCol.setText(cursor.getString(index1));
secondCol.setTextColor(Color.DKGRAY);
secondCol.setTextSize(16);
secondCol.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
row.addView(secondCol); //adding coloumn to row
/*Setting up the third coloumn parameters*/
thirdCol=new TextView(this);
thirdCol.setText(cursor.getString(index2));
thirdCol.setTextColor(Color.DKGRAY);
thirdCol.setTextSize(16);
thirdCol.setLayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
row.addView(thirdCol); //adding coloumn to row
fourthCol=new TextView(this);
fourthCol.setText(cursor.getString(index3));
fourthCol.setTextSize(16);
fourthCol.setTextColor(Color.DKGRAY);
fourthCol.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
row.addView(fourthCol);
fifthCol=new TextView(this);
fifthCol.setText(cursor.getString(index4));
fifthCol.setTextSize(16);
fifthCol.setTextColor(Color.BLACK);
fifthCol.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
row.addView(fifthCol);
/*Adding the row to the tablelayout*/
tableLayout.addView(row,new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
}while(cursor.moveToNext());
database.close();
}
else
{
Toast.makeText(getBaseContext(), "NOT AVAILABLE", Toast.LENGTH_LONG).show();
}
}
}
在這裏創建數據庫....
兩private void createDB() {
// TODO Auto-generated method stub
try
{
database=openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
database.execSQL("CREATE TABLE IF NOT EXISTS "+ TABLE +" (ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, ITEMS TEXT, LOCATION TEXT, NAME TEXT, STATUS TEXT);");
database.close();
}
catch(Exception e)
{
Log.e("Database Creation", "Error "+e.toString());
}
}
非常感謝...我可以趕上你的第二點,我已經實施it.its工作正常,即現在我可以點擊每一行。但仍然相同的價值顯示每個click.i無法讓你的第一point.how我應該爲每一行分配唯一的id。你可以親切地配合它,因爲它是非常有用的。預先感謝 – 2013-05-06 09:48:40
你可以編輯我給出的代碼嗎?我會非常感謝 – 2013-05-06 10:01:21
檢查更新後的答案,添加了一些示例代碼! – 2013-05-06 10:33:52