List'e Txtden Veri Yükleme
-
Assets klasörü içindeki kelimeler.txt dosyasına ulasıp içindeki kelimeleri list'e aktarıp, list'e aktarırkende toast mesajı şeklinde ve ekranda bulunan textview'e o anki kelimeyi yazdırmak istiyorum.
kelimeler.txt içindeki kelimeler şu şekilde
araba
ev
sinema
parke
masa
telefonResimde görceğiniz üzere toast mesajı boş gözüküyor. Halbuki orda kelimeler dosyasındaki bir kelimeyi yazdırması gerekiyor. Yardımlarınızı bekliyorum.
(TextView'in içi boş olduğu için yani herhangi bir yazı olmadığı için ekranda gözükmüyor listdeki veriyi yazdırması gerekiyor normalde)
try { txtOku = new BufferedReader(new InputStreamReader(getApplicationContext().getAssets().open("kelimeler.txt"))); while ((kelime = txtOku.readLine()) != null) { numLine++; } for (int i = 0; i < numLine; i++) { kelimeListesi.add(txtOku.readLine()); if(kelimeListesi.size() == 0){ kelimeGoster.setText("NULL NULL NULL"); Toast.makeText(getApplicationContext(),"NULL NULL NULL", Toast.LENGTH_LONG).show(); } else { kelimeGoster.setText(kelimeListesi.get(i)); Toast.makeText(getApplicationContext(), kelimeListesi.get(i), Toast.LENGTH_LONG).show(); } } } catch (IOException iox) { iox.printStackTrace(); }
-
Listdeki veriler artık null dönmüyor txt dosyasındaki kelimeleri alıyor ama hepsini tek bir satırda alıyor.
Veriler araba
ev
masa... gibi alt alta iken list.add(araba), listadd(ev) yazdırması yerinelist.add(arabaevmasa), listadd(arabaevmasa).... şeklinde yazdırıyor. Her satırı listede ayrı ayrı tutmuyor :/
-
ben olsam newline karakterine göre parçalar diziye atar döngüye sokardım, ama uzman işi başka olur.
-
hocam sorunun while döngüsünü text ler bitene kadar çalıştırman
ondan sonra alttaki for döngüsüyle bitmiş textleri tekrar okutturman..
normalde hepsini tek bir döngü ile yapman gerekir..ama illa kendi kodunu kullanacaksan while ın içine şunu yap
while ((kelime = txtOku.readLine()) != null) {
numLine++;
kelimeListesi.add(kelime);
}
for döngüsünde de bu kısmı sil
kelimeListesi.add(txtOku.readLine());
çalışması lazım
-
Tamamdır sorunu çözdüm. Şimdi tek tek ekliyor listeye ve random olarak listedeki verilerden bir tanesini secebiliyorum.
//Toast kodunu test amaclı while içine koydum
Edit : kelimeListesi.get'i String.valueOf() içerisinde yazmadığım için toast mesajı boş gözüküyordu.
try { txtOku = new BufferedReader(new InputStreamReader(getApplicationContext().getAssets().open("kelimeler.txt"))); while ((kelime = txtOku.readLine()) != null) { kelimeListesi.add(kelime); Integer generatedIndex = rnd.nextInt(kelimeListesi.size()); Toast.makeText(getApplicationContext(), String.valueOf(kelimeListesi.get(generatedIndex)), Toast.LENGTH_LONG).show(); } } catch (IOException iox) { iox.printStackTrace(); }