2011-12-03 2 views
2

こんにちは、私はandroid.widget.LinearLayout.LayoutParamsを使用していますどのように私はTextViewやアンドロイドベースのアプリケーションのためのTableRowのためにプログラムで余白を追加するのですか?

TextView tv = new TextView(this); 
LayoutParams params = new LayoutParams(WRAP_CONTENT, WRAP_CONTENT); 
params.setMargins(100, 20, 0, 0); 
layout.addView(tv, params); 

を使用してみましたが、理由は、テーブルの、私はそれのためにランタイムエラーを得た。プログラムで

マージンを追加しようとしました

どうすればいいですか?

これは私のコードです:輸入android.widget.TableLayout.LayoutParamsで編集

//create table row 
TableRow trA = new TableRow(this); 
     trA.setId(1000+i); 
     trA.setLayoutParams(new LayoutParams (LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT)); 

     //add data to table row 
     TextView tvA = new TextView (this); 
     tvA.setId(2000+i); 
     tvA.setText(aList.get(i).toString()); 
     tvA.setTextSize(18); 
     tvA.setTextColor(Color.BLACK); 
     tvA.setClickable(true); 
     tvA.setOnClickListener(this); 
     tvA.setSingleLine(false); 
     tvA.setHorizontallyScrolling(false); 
     tvA.setWidth(0); 
     tvA.setHeight(100); 

     trA.addView(tvA); 
     tableA.addView(trA,new TableLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 

==; ==

私はのTableRow

LayoutParams params = new LayoutParams (LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT); 
params.setMargins(0, 0, 0, 20); 

を宣言し、私は、ログの猫にエラーが発生しているにtableA

tableA.addView(tvA, params); 

でaddViewを編集した最後にこれを追加、それは、非常にたくさん表示だから私はここでメインのものを与えた:指定された子はすでに親を持っています。子の親で最初にremoveView()を呼び出す必要があります。

+0

にインポートを変更しますか?スタックトレースを投稿してください – Craigy

答えて

4
TableRow.LayoutParams params = new TableRow.LayoutParams(WRAP_CONTENT, WRAP_CONTENT); 
params.setMargins(100, 20, 0, 0); 
+0

申し訳ありません...私は問題は、TextRowをTableRow自体ではなくテーブルに追加したことに気付きました。 – Jovi

0

代わりにTableRow.LayoutParamsを試してみることができます。

だから、実行時例外は何

import android.widget.TableRow.LayoutParams 
+0

元の質問にエラーを投稿してください – Craigy

関連する問題