【发布时间】:2015-01-28 23:06:58
【问题描述】:
我是编程初学者,我需要你的帮助。我必须编写将传感器结果显示为文本的应用程序,并且我以错误的方式进行了操作(代码正在运行,但是当屏幕不滚动时)。
下面我复制 XML 文件:
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/rLight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rPressure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rLight"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rHumidity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rPressure"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rProximity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rHumidity"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rTemp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rProximity"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rAccel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rTemp"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rGyro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rAccel"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rMag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rGyro"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rRotation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rMag"/>
<TextView
android:id="@+id/rGravity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rRotation"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rSCounter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rGravity"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rSDetector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rSCounter"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rLinearAcc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rSDetector"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rSignMotion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rLinearAcc"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/rNoise"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/rSignMotion"
android:textAppearance="?android:attr/textAppearanceMedium" />
这是主类:
公共类 MainActivity 扩展 Activity 实现 EventListener、StepCounterListener、LinearAccListener、StepDetectorListener、LightSensorListener、PressureSensorListener、GravitySensorListener、RotationVectorListener、RelativeHumidityListener、ProximitySensorListener、TempSensorListener、AccelerometerSensorListener、GyroSensorListener、MagSensorListener {
private TextView lightText, pressureText, signText, noiseText, humidityText, linearAccText, proximityText, tempText, accelText, gyroText, magText, rotationText, gravityText, stepDetectorText, stepCounterText;
private LightSensor mLightSensor;
private PressureSensor mPressureSensor;
private RelativeHumiditySensor mRelativeHumidity;
private ProximitySensor mProximitySensor;
private TemperatureSensor mTempSensor;
private AccelerometerSensor mAccelSensor;
private GyroscopeSensor mGyroSensor;
private MagnetometerSensor mMagSensor;
private RotationSensor mRotSensor;
private GravitySensor mGravitySensor;
private StepCounterSensor mStepCounter;
private StepDetectorSensor mStepDetector;
private LinearAccelerometer mLinearAcc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lightText = (TextView)findViewById(R.id.rLight);
pressureText = (TextView)findViewById(R.id.rPressure);
humidityText = (TextView)findViewById(R.id.rHumidity);
proximityText = (TextView)findViewById(R.id.rProximity);
tempText = (TextView)findViewById(R.id.rTemp);
accelText = (TextView)findViewById(R.id.rAccel);
gyroText = (TextView)findViewById(R.id.rGyro);
magText = (TextView)findViewById(R.id.rMag);
rotationText = (TextView)findViewById(R.id.rRotation);
gravityText = (TextView)findViewById(R.id.rGravity);
stepCounterText = (TextView)findViewById(R.id.rSCounter);
stepDetectorText = (TextView)findViewById(R.id.rSDetector);
linearAccText = (TextView)findViewById(R.id.rLinearAcc);
signText = (TextView)findViewById(R.id.rSignMotion);
noiseText = (TextView)findViewById(R.id.rNoise);
mLightSensor = new LightSensor(getBaseContext());
mLightSensor.setListener(this);
mPressureSensor = new PressureSensor(getBaseContext());
mPressureSensor.setListener(this);
mRelativeHumidity = new RelativeHumiditySensor(getBaseContext());
mRelativeHumidity.setListener(this);
mProximitySensor = new ProximitySensor(getBaseContext());
mProximitySensor.setListener(this);
mTempSensor = new TemperatureSensor(getBaseContext());
mTempSensor.setListener((TempSensorListener) this);
[...]
}
public void onLightSensorChanged(String lux){
lightText.setText("LIGHT level: " + lux);
}
public void onPressureSensorChanged(String pressure){
//items.add("PRESSURE: " + pressure);
pressureText.setText("PRESSURE: " + pressure);
}
[...]
我尝试使用 ArrayString、listAdapter 但我总是有很多错误..请帮助
【问题讨论】:
-
使用滚动视图。由于 ScrollView 只能有一个直接子视图,因此您需要先将所有视图包装在一个组视图中(例如 LinearLayout),然后将此 LinearLayout 放入 ScrollView 中。更好的解决方案是使用 ListView
标签: android android-layout listview layout android-listview