0

目前,我正在开发一个 Android 平板电脑上的图形用户界面项目。在一个屏幕上,我有几个按钮,我想用它们使其RelativeLayout可见/不可见。

我尝试使用 onClickListener,但在内部方法onClick中不支持非最终变量,我用它来选择每个按钮和RelativeLayout.

GUI 是动态构建的,因为它的整个结构取决于通过 XML 文件提供的数据。此外,接收文本更新的RelativeLayout用途TextView(传感器数据,如温度和湿度),这就是使用动态方法的原因。

你能给我一些想法来解决这个问题吗?帮助表示赞赏。如果所述信息对您来说还不够,请询问,我会为您提供更多详细信息。

目前我试过这个:

private void setSensorPointOnClick(final ObjectView currentObjectView, final String currentLinkName)
{
    for(int i=0; i<listofSensorDeviceButtons.size(); i++ )
    {

        listofSensorDeviceButtons.get(i).setOnClickListener(
            new View.OnClickListener()  
            {
                public void onClick(View v)  
                {
                    arrayClickedButton[i] = listofSensorDeviceButtons.get(i);
                    mainFrameLayout.removeAllViews();
                    stepToObject(currentObjectView, currentObjectView.getName());               
                }
            }
        );

    }
}
4

1 回答 1

0

要么使用包含要隐藏/显示的视图的字段(并在 onClickListener 中使用它们),要么在事件处理中使用 findViewById。

另一种选择是创建另一个最终视图变量,将在设置 onClickListener 之前设置,以保存新创建视图的引用。

所以,简而言之,我写的可能的解决方案是:

  1. 使用字段。
  2. 使用 findViewById
  3. 使用额外的最终变量。
于 2012-12-12T13:27:07.887 回答