2014-07-22 107 views
0

在我的项目中,我设法以编辑文本和文本视图的行和列的形式显示数据库。但是随着行数和列数的增加,无法查看增加的数据,他们不适合在屏幕上。 所以我想我需要一个水平滚动视图和垂直滚动视图来查看整个行和列。 以下是我的代码,请帮助我如何实现这一点。 请你帮我在此先感谢动态创建水平和垂直滚动视图Android

XML代码

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical"> 



<TableLayout 
      android:layout_width="wrap_content" 
      android:stretchColumns="0,1,2,3,4,5" 
      android:id="@+id/maintable" 
      android:layout_height="wrap_content" 
      android:layout_weight="1.0"> 

</TableLayout> 
</LinearLayout> 

下面是我想展示我的行和列的网页代码

public class ViewActivity extends Activity { 
EditText col1; 
EditText col2; 
TextView Id; 
EditText col4; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_view); 
    ScrollView sv = new ScrollView(this); 
    HorizontalScrollView hs =new HorizontalScrollView(this); 

    TableLayout tl = (TableLayout) findViewById(R.id.maintable); 

    //CREATING A LIST OF HEADINGS 

TableRow tr1 = new TableRow(this); 
    tr1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 

    Id = new TextView(this); 
    Id.setText("COL1"); 
    tr1.addView(Id); 

    Id = new TextView(this); 
    Id.setText("COL2"); 
    tr1.addView(Id); 

    Id = new TextView(this); 
    Id.setText("COL3"); 
    tr1.addView(Id); 

    Id = new TextView(this); 
    Id.setText("Rssi"); 
    tr1.addView(COL4); 

    Id = new TextView(this); 
    Id.setText("Delete"); 
    tr1.addView(COL5); 

    Id = new TextView(this); 
    Id.setText("Update"); 
    tr1.addView(COL6); 

    hs.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
      LayoutParams.FILL_PARENT)); 



    tl.addView(tr1,new TableLayout.LayoutParams(
      LayoutParams.FILL_PARENT, 
      LayoutParams.WRAP_CONTENT)); 

    // CREATING ROWS AND COLUMNS DYNAMICALLY 


    final DBclass entry = new DBclass(ViewActivity.this); 
    entry.open(); 
    Cursor c = entry.getAllRecords(); 

    int count =0; 

    if(c.moveToFirst()){ 
     do{ 
      TableRow tr = new TableRow(this); 
      tr.setId(count); 
      tr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 

      /* CODE FOR 
       COLUMNS DISPLAYED IN THE FORM OF 
       EDITTEXTS AND TEXTVIEWS 
      */ 

      tl.addView(tr, new TableLayout.LayoutParams(
        LayoutParams.FILL_PARENT, 
        LayoutParams.FILL_PARENT)); 



      count++; 
     }while(c.moveToNext()); 

    } 

} 

回答

0

我相当肯定你可以简单地把你的TableLayout放入一个ScrollView来解决这个问题。无需以编程方式添加视图,只需在XML布局资源中预定义即可。像这样:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical"> 

<ScrollView 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

    <TableLayout 
      android:layout_width="wrap_content" 
      android:stretchColumns="0,1,2,3,4,5" 
      android:id="@+id/maintable" 
      android:layout_height="wrap_content" 
      android:layout_weight="1.0"> 

    </TableLayout> 

</ScrollView> 

</LinearLayout> 

请记住,ScrollView是垂直的,所以你需要在那里添加一个Horizo​​ntalScrollView来添加水平滚动。