我正在尝试获取一个在我的膨胀视图中的微调器的索引。
虽然我在成功点击一个按钮时检索了我的子视图的索引,但是点击这样:
reference.conf
这段代码会为第一个虚增视图返回itineraryDetailLL = (LinearLayout) findViewById(R.id.itineraryDetailLinearlayout);
childView = getLayoutInflater().inflate(R.layout.cardview, null);
itineraryDetailLL.addView(childView);
int posValue = itineraryDetailLL.indexOfChild(childView);
Toast.makeText ( PlanItineraryDetailView.this, Integer.toString(posValue), Toast.LENGTH_SHORT ).show();
,为第二个充气视图返回0
,依此类推......
问题
但是当我试图在每个子视图中获取微调器的索引位置(通过调用1
事件)时,它返回每个微调器的最后一个索引位置
setOnTouchListener
这会在我的第一个虚增视图中为微调器返回spinnerPlanItinerary.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
int indexValueTown = itineraryDetailLL.indexOfChild(childView);
Toast.makeText ( PlanItineraryDetailView.this, Integer.toString(indexValueTown), Toast.LENGTH_SHORT ).show();
return true;
}
});
,为我的第二个虚增视图返回微调器1
(在我的第一个膨胀视图中它应该返回1
微调器,{{1我的第二个膨胀视图中的微调器)。
我希望我对自己的问题很清楚。
注意我现在只对两个视图进行测试。
答案 0 :(得分:1)
发布回答,以便在这里绊倒的人可能会得到解决方案。
您案件中的问题是itineraryDetailLL
& childView
是全局变量。这意味着无论何时通过按钮单击添加新项目,都会有值更新到最后一个膨胀的视图。现在无论何时触摸Spinner
,您都会按预期获得最后一个索引。
让他们成为本地& final
变量确保您在触摸微调器时引用相同的视图。
虽然我没有理解你的要求或你想要做什么。可能有更好的方法来实现这一目标。