0

カラム名と位置が固定され、xmlファイルで定義されているテーブル形式でデータを印刷しようとしています。 表のように印刷するにはどうすればよいですか?

  <TableRow 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:paddingTop="10dp"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:text="sid" 
        android:textColor="@android:color/holo_blue_bright" 
        android:id="@+id/textView16" /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:text=" firstName" 
        android:id="@+id/textView16" /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:text=" lastName" 
        android:id="@+id/textView16" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:text=" address" 
        android:id="@+id/textView16" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:text=" phone" 
        android:id="@+id/textView16" /> 
      </TableRow> 
     </TableLayout> 

印刷データのJavaコードである:

String sql=editQueryDB2.getText().toString(); 
       cursor = dbHelper.rawsqlquery(sql); 

       if(cursor!=null) { 
        names = cursor.getColumnNames(); 
        while (cursor.moveToNext()) { 
         for (String name : names) { 
          finalData.append(cursor.getString(cursor.getColumnIndex(name))); 
          finalData.append(" - "); 
         } 
         finalData.append("\n"); 
        } 
        submittedQueryDB2.setText(finalData); 
       } 

出力:それはテーブルに存在するデータに応じて変化するように

データの印刷は適切ではありません。したがって、テーブル形式で体系的に印刷する方法はありますか?

+0

は間隔のためのC言語%6dにのような任意の関数はありますか? –

答えて

0

\t、エントリ間のタブスペースを使用できます。

+0

私は提案を試みましたが、それはうまく機能しませんでした。@ ozo –

+0

1 vishal gupta sanatacruz 111112。 2 suryakumar gupta sanatacruz 11452私は属性にスペースを割り当てることができます。スペースが必要な場合にのみ拡張します.Henceはテーブルのような構造を出力します。応答 –

0

実際には、複数の\ tを使用して表形式のテキストビューを調整できます。私はあなたが適切ではないかもしれない各列の間に1つだけ使用したと思います。データの最適なタブ番号を検索する必要があります。

しかし、あなたはまた、TextViewにするのではなく、表を使用することができます。

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

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


TextView tv1 = new TextView(this); 
tv1.setText("1"); 
tv1.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, 
      TableRow.LayoutParams.WRAP_CONTENT)); 

tr.addView(tv1); 

TextView tv2 = new TextView(this); 
tv2.setText("vishal"); 
tv2.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, 
      TableRow.LayoutParams.WRAP_CONTENT)); 

tr.addView(tv2); 

... 

tl.addView(tr, new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, 
      TableLayout.LayoutParams.WRAP_CONTENT)); 
関連する問題