gpt4 book ai didi

java - Android - 以编程方式添加按钮,设置 ID 崩溃

转载 作者:行者123 更新时间:2023-11-30 00:45:28 24 4
gpt4 key购买 nike

我根据加载的配置以编程方式将 x 个按钮添加到我的 View (让我们仅使用 10 个作为示例)。我创建 10 就好了,当我没有设置 ID 时,或者当我使用 Android 的 generateId() 函数时,它可以工作,但我想使用我的迭代器 (i) 来设置 id,以便迭代匹配它创建的按钮

(for i=0; i<10; i++)
{
button.setId(i);
}

我想要这样当我切换 fragment 时,它会保存按钮并且我不会使用 onCreate 重新创建它们。就目前而言,我收到此错误:

 01-25 17:46:18.197  13236-13236/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.CompoundButton$SavedState
at android.widget.CompoundButton.onRestoreInstanceState(CompoundButton.java:379)

最佳答案

您可以使用 generateViewId在你的 for 中创建一个方法来从 ArrayList 中获取你的按钮。

试试这个:

public class YourClass {

public ArrayList<Integer> ids = new ArrayList<>();

public void generateButtons(){
for (int i = 0; i< 10; i++) {
ids.add(View.generateViewId());
// your code to create the button
button.setId(ids.get(i));
}
}

public Button getButton(int index){
return (Button) findViewById(ids.get(index));
}

}

或者只是创建一个按钮的 ArrayList...

关于java - Android - 以编程方式添加按钮,设置 ID 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41855996/

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