0

これは説明するのが少し難しいです。これがおそらく、これまでウェブ上で解決策を見つけられなかった理由です...

String と String の LinkedList の 2 つの変数を含むクラスがあります。

String name;
LinkedList<String> stringlist;

stringlist は通常、1 ~ 4 個の文字列を保持します。次に、LinkedList の値の量に応じて、このクラスのオブジェクトのコンテンツを表示し、EditText フィールドを動的に表示するアクティビティを作成したいと思います。

リストに4つの値がある場合、次のようになると思います。

Title: <name>
=============
Value: <stringlist[0]>
Value: <stringlist[1]>
Value: <stringlist[2]>
Value: <stringlist[3]>

...そして、値が1つしかない場合は次のようになります:

Title: <name>
=============
Value: <stringlist[0]>

これを行うには、レイアウト xml ファイルをどのように定義すればよいですか? 「TextView-EditText-Combination」をレイアウトファイルとコードで一度だけ宣言して、 stringlist.length() と一致するまでこれを再印刷しますか? レイアウトブロック全体に対してもこの繰り返しをどうにかして行うことはできますか?

4

1 に答える 1

0
// try this way hope this will help you solve your problem.

my.xml

    <EditText
        android:id="@+id/edtTitle"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:hint="Title"/>

    <LinearLayout
        android:id="@+id/lnrDynamicString"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_marginTop="5dp"
        android:orientation="vertical">

    </LinearLayout>

</LinearLayout>

マイアクティビティ

public class MyActivity extends Activity {

    My my;
    private EditText edtTitle;
    private LinearLayout lnrDynamicString;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my);

        edtTitle =(EditText) findViewById(R.id.edtTitle);
        lnrDynamicString=(LinearLayout)findViewById(R.id.lnrDynamicString);

        my = new My();
        my.setTitle("MyTitle");
        LinkedList<String> tempString = new LinkedList<String>();
        tempString.add("Child1");
        tempString.add("Child2");
        tempString.add("Child3");
        tempString.add("Child4");
        tempString.add("Child5");
        my.setStringlist(tempString);

        edtTitle.setText(my.getTitle());
        for (int i=0;i<my.getStringlist().size();i++){
            EditText edtChild = new EditText(this);
            edtChild.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            edtChild.setId(i);
            edtChild.setText(my.getStringlist().get(i));
            lnrDynamicString.addView(edtChild);
        }


    }

}

**My**
public class My {
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    private String title;

    public LinkedList<String> getStringlist() {
        return stringlist;
    }

    public void setStringlist(LinkedList<String> stringlist) {
        this.stringlist = stringlist;
    }

    private LinkedList<String> stringlist;
}
于 2013-11-07T04:19:14.327 に答える