java - android studio(java) 使用字符串查找 View id

标签 java android

我制作一个计算器只是为了练习,但我发现按钮太多了。 我将它们的 id 命名为“button+row+col” 例如)行=5,列=4 -> id=button54

由于我必须攻击每个按钮的监听器,因此我发现手动执行此操作非常烦人。就像,

findViewById(R.id.button11).setOnClickListener(this);
findViewById(R.id.button12).setOnClickListener(this);
...
findViewById(R.id.button95).setOnClickListener(this);

我可以这样做

for(int i=1; i<=9; i++){
    for(int j=1; j<=5; j++){
        findViewById(R.id."button"+Integer.toString(i) + Integer.toString(j)).setOnClickListener(this);
    }
}

或其他使这变得更容易的方法。

enter image description here

最佳答案

由于您正在使用很多按钮,我建议您将它们全部放入一个 ViewGroup 中(例如 LinearLayout、FrameLayout 或类似的东西),然后迭代该 ViewGroup 的每个 View ,检查然后为其实例分配点击监听器。

这是一些伪代码,因为我忘记了 Java 是如何工作的

ViewGroup viewGroup = findViewById(R.id.yourViewGroupName);
for each child in viewGroup.getChildren {
    if child is of type Button {
        child.setOnClickListener(this);
    }
}

关于java - android studio(java) 使用字符串查找 View id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57141441/

相关文章:

java - 用于在 Android 中调试构建的替代应用程序子类

java - 如何使用 JNetPCAP 从 WireShark 了解 pcap 文件中的数据包数量

java - Spring 无法解析 JSP View

java - 如何在android上保持服务器和客户端之间的数据同步?

android - 内部字符串资源引用

Android RuntimeException : MotionEvent recycled twice. Gingerbread 问题?

java - 如何为膨胀 View 中的按钮添加 OnclickListener()?

java - 如何将有向无环图转换为树

java - 无需单击按钮即可动态添加组件

android - 多语言支持在 android 中使用 sharedpreference 不起作用