Java arrayList似乎仅在一个活动先完成时创建,而不是在另一个活动先完成时创建
我为学校的一个班级写的这个应用程序有问题。这是一个基本的训练跟踪应用程序 我有一个arrayList,但是Cardio.java活动只有在Strength.java首先保存了一些内容时才能保存到arrayList。不知道为什么,因为两者的代码相同 我已经仔细检查了这两个活动的代码是否相同,所以不确定为什么只有在strength.java先保存到arrayList时才会保存到arrayList。那么它工作得很好 Cardio.java Strength.java History.java 我认为如果数据库中没有力量训练的数据,那么dbUtils.getArrayListstrength\u训练将返回空ArrayList 如果活动中的列表为空,请尝试创建该列表:Java arrayList似乎仅在一个活动先完成时创建,而不是在另一个活动先完成时创建,java,android,sqlite,arraylist,Java,Android,Sqlite,Arraylist,我为学校的一个班级写的这个应用程序有问题。这是一个基本的训练跟踪应用程序 我有一个arrayList,但是Cardio.java活动只有在Strength.java首先保存了一些内容时才能保存到arrayList。不知道为什么,因为两者的代码相同 我已经仔细检查了这两个活动的代码是否相同,所以不确定为什么只有在strength.java先保存到arrayList时才会保存到arrayList。那么它工作得很好 Cardio.java Strength.java History.java 我认为如
ArrayList strengthWorkouts = dbUtil.getArrayList("strength_workouts");
if(strengthHistory == null) {
strengthHistory = new ArrayList<String>();
}
strengthWorkouts.add(record);
dbUtil.saveArrayList(strengthWorkouts, "strength_workouts");
JavaScript和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:"));
}
});
}
}
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);
}
}
ArrayList strengthWorkouts = dbUtil.getArrayList("strength_workouts");
if(strengthHistory == null) {
strengthHistory = new ArrayList<String>();
}
strengthWorkouts.add(record);
dbUtil.saveArrayList(strengthWorkouts, "strength_workouts");