gpt4 book ai didi

java - Android:选择微调项目后动态添加按钮

转载 作者:行者123 更新时间:2023-12-02 07:48:54 25 4
gpt4 key购买 nike

让它工作起来有点困难,但这是我的理解......

如果我有一个包含文本“[项目]是[颜色]”的微调项目,并且在选择此项目后,我希望它填充...表格行或类似的内容(或只是相对布局)。 ..带有按钮,并且有两个按钮,[item] 和 [color],一个堆叠在另一个上。

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

按钮没有显示...应用程序只是崩溃...撞到一座山上。

非常感谢您的帮助...谢谢大家!

最佳答案

在第一个代码块中

final TableLayout t1 = (TableLayout)findViewById(R.id.button_items);

您已经拥有 t1 的 View ,但您再次在第三个代码块中添加 View

tr.addView(btn);
t1.addView(tr, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

这就是您异常(exception)的原因。

当 View 已全部使用时(例如,您使用 findViewById 获得它,请勿对其使用 addView )。当您想要添加 View 时,请将 addView 与新 View 一起使用。您可以将多个新 View 添加到一个 View 中,但不能多次添加该 View 。

这是我在其他帖子中找到的

关于java - Android:选择微调项目后动态添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10476409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com