我有一个类,它使用其他类来构建一个FrameLayout
. 一个用于通过建筑物导航,另一个用于显示带有传感器的示意图,另一个用于显示传感器数据。我一次构建了整个框架,并希望使传感器数据在框架的传感器视图部分中可见。假设我有 5 个传感器,当我单击一个时,传感器视图会显示传感器数据。我可以让 5 个传感器视图框架相互叠加,使它们不可见,然后通过单击传感器使选择的一个可见。
我想问一下,是否可以使用更新方法更改LinearLayout
包含s 的不同类中的内容?TextView
我已经尝试过了,但我的代码目前无法正常工作。
public static SensorBar Create_SensorBar_Layout(Context myContext, ObjectStructure objStruct, ObjectView objView, List<SensorDevice> listofCurrentSensordevices)
{
// Init
LinearLayout SensorBarLinearLayout = new LinearLayout(myContext);
LinearLayout.LayoutParams layoutParamsSensorBar = new LinearLayout.LayoutParams(
200, 653);
layoutParamsSensorBar.setMargins(5, 5, 5, 5);
SensorBarLinearLayout.setOrientation(LinearLayout.VERTICAL);
SensorBarLinearLayout.setLayoutParams(layoutParamsSensorBar);
SensorBarLinearLayout.setBackgroundResource(R.drawable.window_frame);
SensorBarLinearLayout.setPadding(4,4,4,4);
LinearLayout SensorBarData = new LinearLayout(myContext);
LinearLayout.LayoutParams layoutParamsSensorBarData = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
SensorBarData.setOrientation(LinearLayout.VERTICAL);
SensorBarData.setLayoutParams(layoutParamsSensorBarData);
//--- Button Headline ---
Button buttonNavBarHeadline = new Button(myContext);
buttonNavBarHeadline.setText("Sensordata");
buttonNavBarHeadline.setTextColor(Color.BLACK);
buttonNavBarHeadline.setBackgroundResource(R.layout.mainview_window_headline);
buttonNavBarHeadline.setTextAppearance(myContext, R.style.headline3);
//Layout buildup
SensorBarLinearLayout.addView(buttonNavBarHeadline);
SensorBarLinearLayout.addView(SensorBarData);
return new SensorBar(SensorBarLinearLayout, SensorBarData);
}
这是 Sensorbar,我希望通过单击传感器按钮动态换出 LinearLayout SensorBarData。
public void updateSensorBar(Context myContext, ObjectStructure objStruct, List<SensorDevice> listofCurrentSensordevices, int activeSensor)
{
LinearLayout linearlayoutSensorvalueTextviews = new LinearLayout(myContext);
... (additional Textviews for Sensordata, which get added with addview())
setSensorBarData(linearlayoutSensorvalueTextviews);
}
这由 OnClick 事件使用。
public void setSensorBarData(LinearLayout SensorBarData) { this.dataSensorBar = SensorBarData; }
updateSensorBar 使用它来更新 LinearLayout。
我会很高兴有任何帮助。