2014-07-22 3 views
0

Dans mon projet j'ai réussi à afficher la base de données sous forme de lignes et de colonnes de textes d'édition et de textes Views.Mais le lorsque le nombre de lignes et de colonnes augmente, il est impossible de voir les données ajoutées, ils ne correspondent pas à l'écran. donc je pense que j'avais besoin d'une scrollview horizontale et d'une scrollview verticale pour voir des lignes entières et des colonnes. Ci-dessous est mon code m'aider gentiment comment y parvenir. S'il vous plaît ne me aider merci à l'avanceCréer une vue de défilement horizontale et verticale dynamiquement Android

code xml est

<?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> 

Ce qui suit est le code de la page où je veux afficher mes lignes et colonnes

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

    } 

} 

Répondre

0

Je suis assez sûr que vous pourrait simplement mettre votre TableLayout à l'intérieur d'un ScrollView pour résoudre ce problème. Pas besoin de bidouiller avec l'ajout de vues par programmation, il suffit de le prédéfinir dans la ressource de mise en page XML. Comme ceci:

<?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> 

Gardez à l'esprit ScrollView est vertical, de sorte que vous aurez besoin d'ajouter un HorizontalScrollView là pour ajouter le défilement horizontal ainsi.

Questions connexes