【问题标题】:Get ID's of buttons in Android fragment获取Android片段中按钮的ID
【发布时间】: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


【解决方案1】:

我会假设您的按钮都在同一个视图组中。如果没有,您将需要进行递归调用来处理子视图。

不确定是要保存按钮的引用还是按钮 ID 的引用。当我阅读问题时,我猜您需要按钮 ID。

在您的片段中声明一个字段变量List&lt;Integer&gt;(例如命名为“buttonIDs”)。

然后,在您的onCreateView 中:

ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.pri_all_view, container, false);

for (int i=0; i < rootView.getChildCount(); i++) {
    View v = rootView.getChildAt(i);
    if (v instanceof Button) {
        buttonIDs.add(v.getId());
    }
}

如果您想使用您的 ID:

for (int id : buttonIDs) {
    Button btn = (Button)rootView.findViewById(id);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    相关资源
    最近更新 更多