Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio:在适配器中动态添加按钮_Android_Listview_Button_Android Studio_Adapter - Fatal编程技术网

Android Studio:在适配器中动态添加按钮

Android Studio:在适配器中动态添加按钮,android,listview,button,android-studio,adapter,Android,Listview,Button,Android Studio,Adapter,我需要帮助为适配器内的listView项目创建动态按钮。 以下代码是我的适配器getView函数: @覆盖 公共视图getView(int位置、视图转换视图、视图组父视图){ if(convertView==null){ convertView=GetLayoutFlater().充气(R.layout.sell\u animal\u list\u条目,空); } 动物=(动物)获取项目(位置); 整数计数=0; int值=0; int年龄=0; int寿命=0; int savePositio

我需要帮助为适配器内的listView项目创建动态按钮。 以下代码是我的适配器getView函数:

@覆盖
公共视图getView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
convertView=GetLayoutFlater().充气(R.layout.sell\u animal\u list\u条目,空);
}
动物=(动物)获取项目(位置);
整数计数=0;
int值=0;
int年龄=0;
int寿命=0;
int savePosition=0;
字符串名称=null;
寿命=动物。获取寿命();
年龄=动物;
value=animal.getValue();
name=animal.getName();
savePosition=animal.getPosition();
LinearLayout buttonLayout=(LinearLayout)convertView.findViewById(R.id.ButtonCludelayout);
LinearLayout.LayoutParams lp=新的LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL\u父级,ViewGroup.LayoutParams.WRAP\u内容);
按钮sellButton=新按钮(SellAnimalActivity.this);
sellButton.setText(getResources().getString(R.string.sellanimalbuttonext));
count=buttonLayout.getChildCount();
如果(计数=0){
final int finalSavePosition=保存位置;
sellButton.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图){
显示SellWarning(最终保存位置);
}
});
按钮布局。添加视图(sellButton,lp);
}
返回视图;
}
我现在的问题是,我不能按按钮出售正确的动物。 名单上有5种不同的动物。前三种动物工作正常, 但是第四个和第五个动物在出售第一个动物时按钮错误,即使名称循环正确。
编辑: 进一步解释:我的ListView布局显示了动物的名称、寿命和年龄,我动态添加了一个按钮。每种动物的名称、年龄和寿命都是正确的。 这个按钮应该是用来卖动物的。它对清单上的动物3起作用。但是第四个和第五个动物的按钮试图出售第一个动物。 当我记录.d savePosition时,我得到以下值: 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,3,4 我觉得很奇怪,他只在第五圈读第四和第五个条目


在这个问题上花了这么多小时,也许你可以给我一个解决的提示,为什么第四和第五只动物错了?

由于某种原因,我以前没有找到它,当我搜索时,这里有一个和我有同样问题的人:

解决方案也张贴在那里。
当ListView有一个布局:包裹内容的高度时,ListView显然会感到困惑。它需要填充父项。

为什么只在LinearLayout没有元素时设置ClickListener?另外,a也很好。为了了解问题所在,您丢失了大量代码。cricket,您还需要什么?完整的适配器?根据您对问题的描述,您的问题似乎是位置4和5的
(动物)getItem(位置)
不正确。至少描述一下你所说的出错按钮是什么意思。。。它们有什么不对的地方,更重要的是——什么才是正确的呢?我编辑了上面的条目来进一步解释它,希望这能给你一个更好的想法,我对这个bug非常困惑。