これを機能させるのに少し苦労しましたが、これは私の理解の一部です...
「The [item] is [color]」というテキストを含むスピナー アイテムがあり、これを選択すると、... テーブル行またはそのようなもの (または単に相対レイアウト) を設定したいと思います... [item] と [color] の 2 つのボタンが重なり合っています。
public void onItemSelected(AdapterView<?> parentview, View arg1, int position, long id)
{
final TableLayout t1 = (TableLayout)findViewById(R.id.button_items);
final TableRow tr = new TableRow(t1.getContext());
ArrayList<String> words = Create_ArrayList(R.raw.titles);
// Create_ArrayList は、[item] や [color] アイテムなどの既知の単語を解析し、それらを配列に入れます... 後で列挙する目的で使用します。
String sentence = (String) spin.getSelectedItem();
if(sentence.contains("[item]"))
{
String line = words.get(1);
ArrayList<String> x = getParts(line);
//この時点では、arraylist は [item] と [color] だけである必要があります...
Toast.makeText(getBaseContext(), Integer.toString(x.size()), Toast.LENGTH_SHORT).show();
for(int i = 0; i<x.size(); i++)
{
Toast.makeText(getBaseContext(), x.get(i), Toast.LENGTH_LONG).show();
Button btn = new Button(tr.getContext());
btn.setText(x.get(i));
btn.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
tr.addView(btn);
t1.addView(tr, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
}
}
}
しかし、私は取得し続けます...
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first
ボタンが表示されず...アプリがクラッシュするだけです...山に。
助けていただければ幸いです...ありがとうございました!