のために一つにそれらを読むことはvalueAfterMovingAverageの値を読み取ることが可能であり、の値がするループ中に私のArrayListリストからをFrontalSpeed?技術的な問題は私のforループだと思います。 valueAfterMovingAverageのサイズだけを読み取りますが、リスト配列に格納されているFrontalSpeedの値は読み取っていません。1つのArrayListの中に2つの値を入れて、その後、ループ
したがって、forループは最初の配列の値だけを読み取ります。 の2つの値の大きさ(2つの可変配列)が同じではないことを強調表示する必要があります。私のforループの値をテキストファイルに書き込むにはどうすればいいですか?テキストファイルの現在の結果に2番目の値が繰り返し表示され、falseになります。それはセンサー加速度計からの読み取り値に基づいて変更する必要があります。
float valueAfterMovingAverage;
double TotalAccelerate;
ArrayList<Float> list = new ArrayList<Float>();
@Override
public final void onSensorChanged(SensorEvent event) {
// The light sensor returns a single value.
// Many sensors return 3 values, one for each axis.
if (isListening) {
double xx = event.values[0];
double yy = event.values[1];
double zz = event.values[2];
TotalAccelerate = Math.round(Math.sqrt(Math.pow(xx, 2)
+ Math.pow(yy, 2)
+ Math.pow(zz, 2)));
Log.i(DEBUG, "Accelerometer = " + TotalAccelerate);
FrontalSpeed = Math.round(Math.sqrt(Math.pow(xx, 2)
+ Math.pow(zz, 2)));
Log.i(DEBUG, "list values " + listPeaks);
MovingAverage ma = new MovingAverage(2);
ma.newNum(TotalAccelerate);
valueAfterMovingAverage = (float) ma.getAvg();
sensorText.setText(String.valueOf(valueAfterMovingAverage));
Log.i(DEBUG, "Moving avg: " + valueAfterMovingAverage);
list.add(valueAfterMovingAverage);
list.add(FrontalSpeed);
Log.i(DEBUG,"Size of List: "+ list.size());
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
...
OnStore = (ToggleButton) findViewById(R.id.onStore);
OnStore.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (OnStore.isChecked()) {
//
// set listening flag to true
//
isListening = true;
Toast.makeText(getApplicationContext(), "Start...", Toast.LENGTH_LONG).show();
} else if (!OnStore.isChecked()) { //
// set listening flag to false
//
isListening = false;
try {
for (double valueFromList : list) {
String space = "\n";
byte[] convert = space.getBytes();
fileOutputStream.write(convert);
String finalData;
finalData = String.valueOf(valueFromList);
String line = finalData + " " + FrontalSpeed + "\n";
Log.i(DEBUG, "speed: " + FrontalSpeed);
fileOutputStream.write(line.getBytes());
Log.i(DEBUG, "ans: " + finalData);
}
fileOutputStream.flush();
fileOutputStream.close();
Toast.makeText(getApplicationContext(), "Message saving", Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(getApplicationContext(), "Message Stopped.", Toast.LENGTH_LONG).show();
}
}
});
これはできません。これは目的ではありません。 –