我有点迷路了。当一个按钮被点击时,我试图添加一个自定义对象(有3个整数,1个双精度和1个日期)到一个数组列表中。我想让arraylist显示在另一个类的listview中。到目前为止,我为自定义类提供了以下内容:
ublic class Record {
private Integer squat, bench, dead;
private double total;
private Date dateTime;
public Record(int squat, int bench, int dead, double total, Date date) {
this.bench = bench;
this.dateTime = date;
this.dead = dead;
this.squat = squat;
this.total = total;
}
public Integer getSquat() {
return squat;
}
public void setSquat(Integer squat) {
this.squat = squat;
}
public Integer getBench() {
return bench;
}
public void setBench(Integer bench) {
this.bench = bench;
}
public Integer getDead() {
return dead;
}
public void setDead(Integer dead) {
this.dead = dead;
}
public Double getTotal() {
return total;
}
public void setTotal(Integer total) {
this.total = total;
}
public Date getDateTime() {
return dateTime;
}
public void setDateTime(Date dateTime) {
this.dateTime = dateTime;
}
}EDIT: Classname: MyMaxes.class :在单击按钮的类中,我有这个(我不知道如何在单击按钮时获取当前日期):
public ArrayList<Record> records = new ArrayList<>();
maxTotal = maxDead + maxBench + maxSquat;
int maxDead = Integer.parseInt(mEditTextDead.getText().toString());
int maxSquat = Integer.parseInt(mEditTextSquat.getText().toString());
int maxBench = Integer.parseInt(mEditTextBench.getText().toString());
records.add(new Record(maxSquat, maxBench, maxDead, maxTotal, ));编辑:类名= MyProgress.class :在类中,我想将列表视图设置为这个数组列表(我不确定如何从另一个类中获取数组列表):
RecordAdapter adapter = new RecordAdapter(getApplicationContext(),R.layout.custom_record);
ListView listViewRec = (ListView) findViewById(R.id.listViewRecord);
}这是我的RecordAdapter类,但我也不确定要在其中添加什么:
public class RecordAdapter extends ArrayAdapter<Record> {
public RecordAdapter(Context context, int resource) {
super(context, resource);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return super.getView(position, convertView, parent);
}
}谢谢你的帮助
发布于 2016-08-12 03:35:21
我认为问题在于你有两个不同的适配器:
RecordAdapter adapter = new RecordAdapter(getApplicationContext(),R.layout.custom_record);
ArrayAdapter<Record> arrayAdapter = new ArrayAdapter<Record>(this, R.layout.custom_record, records);您应该使用其中一个,而不是两个都使用。看起来arrayAdapter应该可以工作了。因此,请更改您的所有代码以使用它。
或者,您可以使用您的自定义RecordAdapter。如果这样做,那么应该在这个类中创建ArrayList。然后,当用户单击一个按钮时,您将新的记录对象发送到RecordAdapter实例。最简单的方法是向RecordAdapter添加一个addRecord()方法。
获取当前日期:
您需要做的就是创建一个新的Date对象:
Date currentDate = new Date();有关如何使用Date的详细信息,请参阅链接的javadocs。
发布于 2016-08-12 04:02:58
您不需要自定义RecordAdapter。你也不需要ArrayList。您可以将ArrayAdapter视为馈送到ListView中的ArrayList。您所需要做的就是创建一个ArrayAdapter,并按照与ArrayList相同的方式填充它
public ArrayAdapter<Record> records = new ArrayAdapter<>(getApplicationContext(), R.layout.custom_record);
maxTotal = maxDead + maxBench + maxSquat;
int maxDead = Integer.parseInt(mEditTextDead.getText().toString());
int maxSquat = Integer.parseInt(mEditTextSquat.getText().toString());
int maxBench = Integer.parseInt(mEditTextBench.getText().toString());
records.add(new Record(maxSquat, maxBench, maxDead, maxTotal ));然后,当您想要向listview添加记录时,请使用以下命令:
records.add(new Record(maxSquat, maxBench, maxDead, maxTotal));编辑:
忘了一个非常重要的部分。您需要获取ListView并设置ArrayAdapter以填充它。
ListView listViewRec = (ListView) findViewById(R.id.listViewRecord);
listViewRec.setAdapter(records);https://stackoverflow.com/questions/38904588
复制相似问题