gpt4 book ai didi

java - 添加前一个元素在 ArrayList 中被替换

转载 作者:行者123 更新时间:2023-12-02 05:55:20 24 4
gpt4 key购买 nike

进行了调试。我可以清楚地看到entryLogs.add(dl);之后在entryLogs 的值中。第一个数据被替换,第二个数据已插入到 ArrayList 中。

发生的事情是每次我输入新值时,它都会将其添加到 ArrayList 中,但将第一个条目替换为与第二个条目相同。例如:我添加 A 并单击它添加 A。再次添加 B,然后单击添加 B。但在 Arraylist 中,值为 [17/4/2014:20:29 B, 17/4/2014:20:29 B]

请建议需要做什么。完整代码可以在这里找到:https://github.com/tirthoguha/DroidProject/blob/myDiary/src/com/example/s0217980_diary/Monday_fragment.java

entryLogs = new ArrayList<DiaryLogs>();

timeText = (EditText) getView().findViewById(R.id.dateTimeEText);

entryText = (EditText) getView().findViewById(R.id.diaryEntryEText);

Button saveBtn = (Button) getView()
.findViewById(R.id.saveDiaryEntryBtn);
saveBtn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

timeEntry = timeText.getText().toString();

entryEntered = entryText.getText().toString();

dl = new DiaryLogs(1, timeEntry, entryEntered);

entryLogs.add(dl);

最佳答案

在类DiaryLogs.java中,您将字符串timeEntry和entryEntered声明为static

static String timeEntry;
static String entryEntered;

删除 static 修饰符就可以了。静态对象对于该类的任何实例都将具有相同的值(即使没有该类的实例也可以访问),因此如果您在另一个对象中设置该值,则每个实例都将使用该值。

关于java - 添加前一个元素在 ArrayList 中被替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23153583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com