【发布时间】:2016-04-18 17:03:03
【问题描述】:
我想要做的是获取 android 片段中每个按钮的每个 ID。目前我有一个 for 循环,它通过 ID 运行,即“PA1”、“PA2”、“PA3”......。我希望能够使用任何 ID,但仍然可以使用 java 代码对其进行修改。
这就是我现在拥有的
TextView tv;
View viewHold;
Button[] btns;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.pri_all_view, container, false);
viewHold = view;
int resId=-1;
int c=0;
while(resId != 0){
resId = getResources().getIdentifier("PA" + (c+1), "id", MainActivity.PACKAGE_NAME);
c++;
}
btns = new Button[c-1];
for(int i=0;i < btns.length; i++){
resId = getResources().getIdentifier("PA" + (i+1), "id", MainActivity.PACKAGE_NAME);
btns[i] = (Button) view.findViewById(resId);
btns[i].setTransformationMethod(null);
btns[i].setOnClickListener(this); // calling onClick() method
}
return view;
}
....
这确实有效,但我不想使用带有数字的通用 ID。
【问题讨论】:
-
如果你只使用一个ArrayList,你不能将while循环和for循环结合起来吗?
-
当我在 ArayList 对象上使用 setOnClickListener 时,我会得到一个空指针。
-
无论如何,您到底在寻找什么?您想获取当前布局中所有按钮的列表吗?
-
是的,他们的 ID 列表。我在代码中进一步使用它们,我没有发布那部分,因为它不处理获取 ID。
-
Here is a similar question 用于 EditTexts
标签: android android-fragments android-studio