2011-12-28 5 views
1

アクティビティから実行されているこの例は見つからないようです。テーブルの行をテーブルレイアウトに追加することはできますが、axmlに設定されている既存の列とは一致しません。私が望むのは、私のヘッダー行をaxmlに設定してから、アクティビティからダイナミックに追加することだけです。私は私の活動でこれを行うとMonoDroid書式TableLayoutに合う新しいTableRow

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/scannedLO" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_below ="@id/addPart" 
android:layout_marginTop="20dip" 
android:stretchColumns="3"> 
<TableRow android:layout_marginBottom ="10dip"> 
    <TextView 
    android:layout_column="1" 
    android:text="Item Number" 
    android:padding="3dip" 
    android:layout_margin="2dip"/> 
    <TextView 
    android:layout_column="2" 
    android:text="Item Description" 
    android:padding="3dip" 
    android:layout_margin="2dip"/> 
    <TextView 
    android:layout_column="3" 
    android:text="Qty" 
    android:padding="3dip" 
    android:layout_margin="2dip" 
    android:lines="1"/> 
</TableRow> 

は:私のtextviewsの

 TableLayout tl = (TableLayout)FindViewById(Resource.Id.scannedLO); 
     TableRow tr = new TableRow(this); 
     TextView itemNumber = new TextView(this); 
     TextView itemDescription = new TextView(this); 
     TextView itemQuantity = new TextView(this); 

        TableRow.LayoutParams trparam = new TableRow.LayoutParams(); 
        trparam.Span = 3; 

        itemNumber.Text = partnum; 
        itemDescription.Text = partdescr; 
        itemQuantity.Text = partquan; 

        tr.AddView(itemNumber); 
        tr.AddView(itemDescription); 
        tr.AddView(itemQuantity); 

        tl.AddView(tr); 

すべて3は、第1列に終わります。

+0

誰か?私は、モノドロイドが扱うことができるようなものと思われるダイナミックなテーブルレイアウトが必要なだけです。助けてください – jmease

答えて

2

JavaのsetLayoutParams()メソッドは、C#のLayoutParametersプロパティにマップされます。

row.LayoutParameters = ViewGroup.LayoutParams.FillParent; 

一般に、JavaからC#に変換するとき、Javaのgetter/setterメソッドはC#のプロパティにマップされます。たとえば、JavaのgetText()/setText()は、通常C#のTextという名前のプロパティにマップされます。 (あなたの更新の質問に基づいて)

編集:

問題は、XMLの各のTextViewの列を設定しているが、あなたがやっていないということであるコードで:

itemNumber.LayoutParameters = new TableRow.LayoutParams(1); 
itemDescription.LayoutParameters = new TableRow.LayoutParams(2); 
itemQuantity.LayoutParameters = new TableRow.LayoutParams(3); 

これを実行すると、ビューは適切な列に表示されます。 XMLではパディングとマージンを適用していますが、コードでもそうしているわけではないので、完全に整列しません。私はどこにそれらを再定義するのではなく、セルの再利用可能なスタイルを作成することをお勧めします。

+0

ありがとう。私はまだもっとたくさんの書式設定が必要です。私は、アクティビティからモノでテーブルレイアウトをフォーマットする包括的な例が必要です。誰がどこにいるのか知っていますか? Googleは検索結果の価値がない。 – jmease

+0

あなたはJavaで探しているものを見つけるのにもっと良い運があるでしょうし、Java - > C#から変換するのはかなり簡単です(ここで行ったように)。 AndroidのAPI設計のMonoと、Java側との関係については、ここをクリックしてください。http://docs.xamarin.com/android/advanced_topics/api_design –

+0

あなたの例を使用するときにこれを取得します。暗黙的に型 'int'を 'Android.Views.ViewGroup.LayoutParams'に変換できません。明示的な変換が存在します(キャストがありませんか?) – jmease

関連する問題