У меня проблема с этим приложением, которое я пишу для класса в школе. Это базовое приложение для отслеживания тренировок.
У меня есть arrayList, но действие Cardio.java можно сохранить только в arrayList, если Strength.java уже что-то сохранил первым. Не уверен, почему, поскольку код одинаков для обоих.
Я дважды проверил, что код одинаков для обеих операций, поэтому не уверен, почему он сохраняется только в arrayList, если strenght.java делает это первым. Тогда все работает нормально.
Cardio.java
public class Cardio extends AppCompatActivity {
String cardio;
String miles;
String time;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cardio);
Button saveButton = (Button) findViewById(R.id.btnSave);
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseHelper dbUtil = new DatabaseHelper();
Spinner cardioSpinner = findViewById(R.id.listCardioType);
cardio = cardioSpinner.getSelectedItem().toString();
EditText milesText = findViewById(R.id.txtMileageInput);
miles = milesText.getText().toString();
EditText timeText = findViewById(R.id.txtTimeInput);
time = timeText.getText().toString();
String record = cardio + ": " + miles + " miles, " + time + " mins.";
Log.d("test", record);
ArrayList strengthWorkouts = dbUtil.getArrayList("strength_workouts");
Log.d("test", strengthWorkouts.toString());
strengthWorkouts.add(record);
dbUtil.saveArrayList(strengthWorkouts, "strength_workouts");
Toast toast = Toast.makeText(Cardio.this, "Workout Saved", Toast.LENGTH_LONG);
toast.setGravity(0, 0, -200);
toast.show();
}
});
Button shareButton = (Button) findViewById(R.id.btnShare);
shareButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(Intent.ACTION_SEND);
myIntent.setType("text/plain");
String shareBody = "I just completed a workout! " + cardio + ": " + miles + " miles, " + time + " mins.";
myIntent.putExtra(Intent.EXTRA_SUBJECT, shareBody);
myIntent.putExtra(Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(myIntent, "Share Using:"));
}
});
}
}
Strength.java
public class Strength extends AppCompatActivity {
String exercise;
String repCount;
String weight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_strength);
Button saveButton = findViewById(R.id.btnSave);
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseHelper dbUtil = new DatabaseHelper();
Spinner exerciseSpinner = findViewById(R.id.listWeightType);
exercise = exerciseSpinner.getSelectedItem().toString();
EditText repCountText = findViewById(R.id.txtRepInput);
repCount = repCountText.getText().toString();
EditText weightText = findViewById(R.id.txtWeightInput);
weight = weightText.getText().toString();
String record = exercise + ": " + repCount + " reps, " + weight + " lbs.";
Log.d("test", record);
ArrayList strengthWorkouts = dbUtil.getArrayList("strength_workouts");
Log.d("test", strengthWorkouts.toString());
strengthWorkouts.add(record);
dbUtil.saveArrayList(strengthWorkouts, "strength_workouts");
Toast toast = Toast.makeText(Strength.this, "Workout Saved", Toast.LENGTH_LONG);
toast.setGravity(0, 0, -200);
toast.show();
}
});
Button shareButton = (Button) findViewById(R.id.btnShare);
shareButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(Intent.ACTION_SEND);
myIntent.setType("text/plain");
String shareBody = "I just completed a workout! " + exercise + ": " + repCount + " reps, " + weight + " lbs.";
myIntent.putExtra(Intent.EXTRA_SUBJECT, shareBody);
myIntent.putExtra(Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(myIntent, "Share Using:"));
}
});
}
}
History.java
public class History extends AppCompatActivity {
private static final String TAG = "ListDataActivity";
DatabaseHelper mDatabaseHelper;
private ListView mListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_history);
mListView = findViewById(R.id.listView);
DatabaseHelper dbUtils = new DatabaseHelper();
ArrayList<String> strengthHistory = dbUtils.getArrayList("strength_workouts");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
strengthHistory );
mListView.setAdapter(arrayAdapter);
}
}