【发布时间】:2017-09-12 11:00:14
【问题描述】:
我正在尝试获取我的膨胀视图内的微调器的索引。
虽然我成功地检索了我的子视图的索引,当它像这样点击按钮时被膨胀:
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 用于微调器我的第二个充气视图(它应该返回 0 用于我的第一个充气视图中的微调器,1 用于我的第二个充气视图中的微调器查看)。
我希望我的问题很清楚。
请注意,我现在只为测试添加两个视图。
【问题讨论】:
-
将 onitem clicklistener 用于微调器项目触摸事件。
-
我也这样做了,但问题仍然存在。
-
是itineraryDetailLL & childView 全局变量吗?如果是这样,则使它们成为局部变量和最终变量。类似于: final LinearLayout itineraryDetailLL = (LinearLayout) findVi.... & see
-
你到底想要什么?
-
@SafanMomin 检查此链接我认为它的工作。 stackoverflow.com/questions/27886737/… 第二个是:- stackoverflow.com/questions/35607524/…
标签: android ontouchlistener layout-inflater