如何在变量中存储按钮名称?我觉得这个查询对我来说很有挑战性

时间:2016-04-08 14:18:17

标签: android android-button

这是一个场景,例如,我在android中有一个名为a_1图像按钮。我想将该按钮名称存储在变量即variable = a_1中,以便我可以将其传递给方法并在该方法中使用它,即variable.set_Image_Resource(...)。这可能吗?如果是这样,您的想法将不胜感激。如果没有,任何替代解决方案将不胜感激。 我在很多平台上搜索过很多但除了在变量中存储按钮文本之外没什么用处。

这个问题的原因是,我的应用程序中有64个图像按钮,并且有一个场景,32个按钮上有一个switch语句。如果我用32个开关实现所有64个按钮,每个开关有32个案例,那将是一个疯狂的方法。所以,我想要做的是,我想只做一个只有一个开关的方法,我在其中传递按钮而不是使用按钮限定符,即button_name.something()我可以使用该参数,即{{1 }}

我知道有很多其他方法可以实现这个问题,但我应该以这种方式解决这个问题。

3 个答案:

答案 0 :(得分:1)

我相信您可以通过将所有按钮绑定到同一个ClickListener来解决此问题,因此您不必将按钮的ID作为字符串获取。在听众中,你可以拥有你的开关。以下是如何创建ClickListener类的示例:

-O0

在活动的onCreate上,声明此侦听器的实例并将其添加到每个按钮。

希望它有所帮助。

答案 1 :(得分:0)

我不知道我是否理解了您的问题,但如果您想获得所有按钮ID /文本,则需要执行此代码。

LinearLayout layout = (LinearLayout) findViewById(R.id.layout);

for(int i=0; i < layout.getChildCount(); i++)
{
    View v = layout.getChildAt(i);

    if (v instanceof Button) {
        Button b = (Button) v;
        Log.d("GORIO", "ID: " + b.getId());
        Log.d("GORIO", "Button Text: " + b.getText());
    }
}

答案 2 :(得分:0)

另一种优雅的方法是不通过XML视图定义声明这些按钮,而是通过addView(...)将它们添加到封闭视图中以编程方式声明。这样你就可以在数组或列表中组织它们,并简单地迭代它们。