Java ve Android'de yeniyim. Yazdığım bir uygulamanın parçası, bir dosyadan öğe verilerini okur ve bir ListView doldurmak için kullanmadan önce öğelerin bir ArrayList öğesini doldurur. Bunu çalıştırdığınızda Items.java:-Nesnelerin bir Dizisi Oluşturulması, her öğenin aynı olmasına neden olur.
public class Item {
private static int idInt;
private static String description;
private static Image image;
public Item(int idInt, String description) {
this.idInt = idInt;
this.description = description;
this.image = image;
}
}
ama ArrayList (ve ListView) tüm öğeleri doludur bulmak itibaren main.java:-
public class MainActivity extends AppCompatActivity {
public static ArrayList<Item> items;
.
.
.
private void ReadItemsFile() throws IOException {
File itemsFile = new File(itemsFilenameString);
items = new ArrayList<Item>();
try (BufferedReader itemsBufferedReader = new BufferedReader(new FileReader(itemsFile))) {
for (String line; (line = itemsBufferedReader.readLine()) != null;) {
String[] lineStrings = line.split("\t|\n", 2);
int itemNo = Integer.parseInt(lineStrings[0]);
items.add(new Item(itemNo, lineStrings[1]));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
itibaren
dosyadan okunan son ile aynıdır. Ben ArrayList tüm öğeler satırdan sonra eklenen sonuncusuna değiştirildiğini bu hata ayıklama çalıştı ve buldum: - Bu nasıl bunu düzeltmek için neden
items.add(new Item(itemNo, lineStrings[1]));
birisi açıklayabilir miyiz?
Bu sitede daha önce Creating an ArrayList of Objects numaralı telefonu kontrol ettim ve ArrayList nüfus yöntemim ile aynı olmasını önerdim.
Bu ile ilgisi yoktur .. yerine tüm nesneler için bu sorunu çözer
Umut ortak olma nesneye bağlıdır onların depolama. "Item" sınıfında örnek değişkenler yerine açıkça "static" değişkenleri vardır. – Savior
Bunun için teşekkürler. Aslında bu rotayı düşündüm ama şimdi gereksiz olduğunu anlıyorum. – JimFitz