Turkcell | Geleceği Yazanlar

Soru & Cevap

activity çalışma mantığı

27.07.2014 - 23:34

Merhabalar,

Uygulamadaki activty çalışma mantığı ile ilgili bir soru soracağım. Yaptığım işlem doğru mu farklı bir yolu var mı çok merak ediyorum. Şöyleki;

.Uygulama Mainactivity ile start oluyor.  Bu activity'de bir dosya kontrolü var. Dosya var ise dosyayı okuyor kayıtları bir nesneye atıyor ve buradan farklı bir activity çalıştırıyorum. (ListActivty diyelim.) Burada ilgili kayıtları adapater ile listeliyorum. 

Sorum şu ki; bu liste her değiştiğinde (örneğin kayıtlardan birinde değişiklik yada silme işlemi yapılıyor) ben her seferinde Mainactivty'i yeniden mi startactivity ile çalıştırmalıyım. Bu şekilde her seferinde listactivty çağırıp diğer activty'nin üzerinde yeniden açılıyor. Bunun daha basit bir mantığı var mıdır_?

 

Yardımlarınız için şimdiden teşekkürler.   

 

 

 

2701 Görüntülenme

1 Cevap

Ulaş Sancak
27.07.2014 - 23:42

Evet yaptığın şey yanlış.

1.si MainActivity'nin görsel olarak bir işlevi yoksa ListView'ini direkt MainActivity'ne koyabilirsin. Bütün işlemleri orada yaparsın. Ayrıca bir activty'ye gerek yok gibi görünüyor buradan.

 

2.si asıl soruna gelirsek. ListView'in elemanlarında bir değişiklik yaptığın zaman. Adapter'inin şöyle bir metodu var:

notifyDataSetChanged

Bunu çağırarak değişiklikleri sağlayabilirsin direkt olarak. ListView yenilenir.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Erkan
28.07.2014 - 00:00
Ulaş bey yorumunuz ve bilgilendirmeniz için çok teşekkürler. Evet mainactivty'i kaldırıp direk listactivty'den başlatmak gerekir. Ancak şöyle bir durum var. Ben bu liste içreisinde konum bilgileri tutuyorum. bu liste içerisinden herhangi bir kaydı seçtiğinde ilgili kaydın bilgilerinin geldiği ayrı bir activity çalışıyor. (burada yapmam gereken şey diğer activity'i çağırdığımda ListActivity'i finish() yapmam gerekir mi?) bu activity'de eğer harita üzerinde farklı bir konum seçecek ise onu işaretliyor harita üzerinde ve kaydediliyor. Sonrasında bu Listactivy'e geçişi nasıl yapmalıyım. Karışık mı oldu sorum tam emin değilim. Basitçe şu sıralama çalışıyor. 1- Listactivty (Kayıtlar listelenir). 2- Listeden kayıt tıklandığında ilgili kaydın bilgilerinin getirildiği (GetActivity) 3- Konum değişecek ise MapActivity çalışır.. Konum değiştirilir. KAyıt edilir. Bu surumda 3 activiy aktif durumda. Kayıt değiştiğinde tekrar yeni listenin gösterilmesi gerekiyor. Buradaki geçişleri nasıl yapmalıyım. Yardımcı olursanız çok sevinirim. Teşekkürler.
Erkan
28.07.2014 - 00:51
yardımcı olabilecek var mı?
Ulaş Sancak
28.07.2014 - 04:18
Şimdi bu biraz da ne istediğine bağlı. Eğer geri gelmek önemli değilse yeni activty'ye geçerken bulunduğun activity'yi finish yapabilirsin. Ama yok önemli ise şöyle olacak. Sen diyelim Map activity'sine geldin ve işlemini tamamladın en başa gitmek istiyorsun: Intent intent = new Intent(this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(intent); FLAG_ACTIVITY_REORDER_TO_FRONT -> bu flag önceki activityleri kapatmayı sağlayacak. MainActivity'de de onResume metodunda adapterin notifyDataSetChanged metoduyla da listeyi yenileyebilirsin.
Erkan
28.07.2014 - 12:02
FLAG_ACTIVITY_REORDER_TO_FRONT -> açık olan tüm activty'leri mi kapatıyor yoksa start ettiğim ve açık olan ilgili activty'mi kapatıyor.
Ulaş Sancak
29.07.2014 - 05:20
Start ettiğin activtyi en öne getirip diğerlerini kapatacaktır.
Erkan
29.07.2014 - 12:25
çok teşekkürler.
Ulaş Sancak
31.07.2014 - 12:27
Yardımcı olabildiysem cevabı kabul eder misiniz? Kolay gelsin.

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.