0

LinearLayoutで垂直方向に5つのボタンを動的に作成しました。彼らは3つの異なる言語の文字列リソースから名前を取得します。したがって、ボタンは常に正しいアルファベット順であるとは限りません。だから私の質問があります。ボタンを3つの言語すべてでアルファベット順に並べ替えるにはどうすればよいですか?

Language 1:
String 1 = a,
String 2 = b,
String 3 = d,
String 4 = e,
String 5 = c,

Language 2: 
String 1 = c,
String 2 = e,
String 3 = a,
String 4 = b,
String 5 = d,

Language 3: 
String 1 = d,
String 2 = c,
String 3 = a,
String 4 = b,
String 5 = e,

これが私のコードです:

    Button btn1 = new Button(this); 
    btn1.setText(R.string.String1); 
    layout.addView(btn1);

    Button btn2 = new Button(this); 
    btn2.setText(R.string.String2); 
    layout.addView(btn2);

    Button btn3 = new Button(this); 
    btn3.setText(R.string.String3); 
    layout.addView(btn3);

    Button btn4 = new Button(this); 
    btn4.setText(R.string.String4); 
    layout.addView(btn4);

    Button btn5 = new Button(this); 
    btn5.setText(R.string.String5); 
    layout.addView(btn5);

心からジョン

4

2 に答える 2

2

ボタンをTreeMap(ソートされたマップ)に配置できます。

Map<String, Button> map = new TreeMap<String, Button>();

Button btn1 = new Button(this); 
btn1.setText(R.string.String1); 
map.put(R.string.String1, btn1);

Button btn2 = new Button(this); 
btn2.setText(R.string.String2); 
map.put(R.string.String2, btn2);

Button btn3 = new Button(this); 
btn3.setText(R.string.String3); 
map.put(R.string.String3, btn3);

Button btn4 = new Button(this); 
btn4.setText(R.string.String4); 
map.put(R.string.String4, btn4);

Button btn5 = new Button(this); 
btn5.setText(R.string.String5); 
map.put(R.string.String5, btn5);

for (Button b : map.values()) {
    layout.addView(b);
}
于 2012-06-20T11:36:46.187 に答える
0
ArrayList<String> strings = new ArrayList<String>();
strings.add(getString(R.string.String1));
strings.add(getString(R.string.String2));
strings.add(getString(R.string.String3));
strings.add(getString(R.string.String4));
strings.add(getString(R.string.String5));

for (String str : Collections.sort(strings)) {
    Button b = new Button(this);
    b.setText(str);
    layout.addView(b);
}

TreeMapはまともなオプションですが、何らかの理由でコード内の特定の順序で各ボタンと文字列の組み合わせを具体的に追跡する必要がない限り、私には過剰に思えます。

于 2014-09-24T00:47:17.813 に答える