07 | 2017/08 | 09
-
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
プロフィール

uritted

Author:uritted
覗いてくださって
ありがとございます

ゆっくり一息してくださいね

最新記事

カテゴリ

Book PR

PR

FC2 PR

ブログ

アクセス数

検索フォーム

QRコード

QR

スポンサーサイト

--.--.-- --:--|スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

TableLayout 作成

2011.08.27 09:46|レイアウト
【 TableLayout の表示の仕方 】

Activityにてレイアウト作成。

※ Activity内の[MainLayout.addView]で TableLayout 表示させる。
※ 表示させる TableLayout は MyLibクラスの[createTable]を呼び出し作成。
※ テーブル内の表示テキストビューは MyLibクラスの[setTextInTable]を呼び出し作成


~TableLayout.java~
public class TableLayout extends Activity {
   
   /*** 初期設定 ***/
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

   //レイアウト 生成
   LinearLayout MainLayout = new LinearLayout(this);          //レイアウト生成
   MainLayout.setOrientation(LinearLayout.VERTICAL);         //垂直方向
   MainLayout.setBackgroundColor(Color.CYAN);             //背景色
   setContentView(MainLayout);                       //描写
   
   //定義
   int Rows = 3;                                //テーブル行数
   int[] Width = new int[]{50,50,MyLib.FP};                //配列 横幅
   int[] LineWidth=new int[]{1,1,1,1};                    //配列 マージン

   //テーブル 生成
   TableLayout TableLayout = MyLib.createTable
      (this,Rows,Width,LineWidth,Color.BLACK);

   //サブレイアウト テーブル追加
   MainLayout.addView(TableLayout,
      new LinearLayout.LayoutParams(MyLib.FP,MyLib.FP));

   //テーブル内 テキスト入力 定義
   String Data[][]={{"名前","年齢","備考"},
             {"太郎","23","趣味は太郎さんを探しにいくこと"},
             {"百花","21","明日の天気ばかり気にする"}};

   //テーブル内 テキスト入力
   MyLib.setTextInTable(TableLayout,Data);

   }
}


~MyLib.java~
public class MyLib {

/*** 定義 ***/
   //幅 最大範囲
   public final static int FP=LinearLayout.LayoutParams.FILL_PARENT;
   //幅 自動調整
   public final static int WC=LinearLayout.LayoutParams.WRAP_CONTENT ;

/*** テーブルレイアウト 生成 ***/
   public static TableLayout createTable(Context context
      , int rows, int[] cWidth, int[] lineWidth, int lineColor) {

   //テーブルレイアウト 生成
   TableLayout tableLayout = new TableLayout(context);

   //テーブル 設定
   tableLayout.setPadding(lineWidth[0], lineWidth[0],
   lineWidth[0], lineWidth[0]);                    //内側マージン (罫線:外枠)
   tableLayout.setBackgroundColor(lineColor);          //背景
   tableLayout.setColumnStretchable(cWidth.length-1, true); //テキスト自動伸張
   tableLayout.setColumnShrinkable(cWidth.length-1, true);  //テキスト折り返し

   //テーブル行 配列定義
   TableRow[] tableRows = new TableRow[rows];
   //テーブル内テキスト 配列定義
   TextView[][] rowData = new TextView[tableRows.length][cWidth.length];

   //テーブル 作成
   for (int i=0; i< tableRows.length; i++) {
      //テーブル行 生成
      tableRows[i] = new TableRow(context);

      //テーブル行追加
      tableLayout.addView(tableRows[i],
         ViewGroup.LayoutParams.FILL_PARENT,
         ViewGroup.LayoutParams.WRAP_CONTENT);

      //テーブルレイアウト設定
      TableLayout.LayoutParams tableLayoutParams
         = (TableLayout.LayoutParams) tableRows[i].getLayoutParams();      
      //外側マージン (罫線:内枠横)
      if (i==1) {
         tableLayoutParams.setMargins(0, lineWidth[1], 0, 0);  
      } else if (i>0) {
         tableLayoutParams.setMargins(0, lineWidth[3], 0, 0);
      }

      //テーブル内テキスト 作成
      for (int j=0; j< cWidth.length; j++) {
         //テキストビュー 生成
         rowData[i][j] = new TextView(context);

         //テキストビュー 設定
         rowData[i][j].setGravity(Gravity.CENTER);            //配置設定
         rowData[i][j].setBackgroundColor(Color.rgb(255, 255, 255)); //背景色
         rowData[i][j].setTextColor(Color.rgb(0, 0, 0));          //テキストカラー

         //テーブル行レイアウト 設定
         TableRow.LayoutParams tableRowParams = new TableRow.LayoutParams
            (cWidth[j], ViewGroup.LayoutParams.WRAP_CONTENT);
         //外側マージン (罫線:内枠縦)
         if (j==1) {
            tableRowParams.setMargins(lineWidth[2], 0, 0, 0);         
         } else if (j>0) {
            tableRowParams.setMargins(lineWidth[3], 0, 0, 0);
         }

         //テキストビュー 追加
         tableRows[i].addView(rowData[i][j], tableRowParams);
      }
   }
   return tableLayout;
   }

/*** テーブル内のテキストビューにテキストを入力 ***/
   public static void setTextInTable(TableLayout tableLayout, String data[][]) {
      for (int i=0; i< tableLayout.getChildCount(); i++) {
         TableRow tableRow = (TableRow) tableLayout.getChildAt(i);
         for (int j=0; j< tableRow.getChildCount(); j++) {
            TextView textView = (TextView) tableRow.getChildAt(j);
            textView.setText(data[i][j]);
         }
      }
   }

}


スポンサーサイト

コメント:

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。