0

XMLですでに定義されているレイアウトがあります。保存したファイルの可変データを表示するListViewを追加したいと思います。

データのサイズは固定されておらず、既存のデータはユーザーが編集できるため、resに保存できるかどうかはわかりません。

知識が不足しているため、プログラムでレイアウトコンポーネントを作成する方が有利(リストビュー)であると感じていますが、他のコンポーネントはxmlファイルを使用した方が適切です。

xmlとjavaの両方を使用してレイアウトを作成する方法はありますか?ありがとう。

4

2 に答える 2

1

ListView を xml ファイルに入れる必要があります。Java でアダプタを定義し、必要なデータをロードすることで動的にします。

ListView を XML に追加しても、XML に動的データを入力する機能は削除されません。

于 2012-07-07T19:23:49.913 に答える
1

実際には、ListView を動的に作成する必要はありません。

xml ファイルで ListView を静的に定義できます。Java コードでは、アダプターをその ListViewにアタッチする必要があり、リストにはアダプターにあるのと同じ数のアイテムが自動的に含まれます。

私が言おうとしていることを完全に理解するには、ListView のいくつかの基本的な例を確認する必要があると思います。

ListView の段階的なチュートリアルについては、このリンクを確認してください: http://www.mkyong.com/android/android-listview-example/

そして、あなたの質問は実際にはxmlに要素を動的に追加することに関するものであるため(ListViewでやろうとしていることを達成するためにこれを行う必要はありません。私はあなたの知識のために答えています)、これがあなたの方法ですやれ :

        TextView textView = new TextView(YourClass.this);

        textView.setLayoutParams(....); // specify the Layout Parameters

        textView.setPadding(60, 10, 0, 10);
        textView.setTextAppearance(getBaseContext(), R.style.TitleTextStyle);

任意のレイアウト内に複数のアイテムを作成する場合は、動的に作成された LinearLayout 内に Image と TextView を追加する次のサンプル コードを参照してください。

    LinearLayout ll = new LinearLayout(this);
    ll.setOrientation(1);
    ImageView iv1 = new ImageView(this);
    iv1.setImageResource(R.drawable.control);
    TextView txtTab1 = new TextView(this);
    txtTab1.setText("BLah Blah BLAh");
    txtTab1.setPadding(8, 9, 8, 9);
    txtTab1.setTextColor(Color.parseColor("#8B4513"));
    txtTab1.setTextSize(30);
    txtTab1.setBackgroundResource(R.drawable.control);
    txtTab1.setGravity(Gravity.CENTER_HORIZONTAL);

    ll.addView(iv1,0);
    ll.addView(txtTab1,1);
于 2012-07-07T19:35:25.947 に答える