-
Üyelik
15.02.2017
-
Yaş/Cinsiyet
27 / E
-
Meslek
Girişimci ve İçerik Üreticisi
-
Konum
Aydın
-
Ad Soyad
U** K**
-
Mesajlar
540
-
Beğeniler
109 / 118
-
Ticaret
0, (%0)
Android uygulama yazıyorum ve MainActivity de 100 tane checkbox var. Ve ben sadece en az 1 ve en fazla 10 tanesini seçtikten sonra "devam" isimli tuşun aktifleşmesini sağlamak istiyorum.
Kendim denedim ama beceremedim. Tek tek checkboxları tanımlamak hamballık olur diye düşünüyorum. Pratik bir şekilde çözümü var mıdır? Nasıldır? Kodlarıyla ve anlatarak gösterirseniz sevinirim. :)
Baştan Sona PHP Eğitimi ➡ youtu.be/TQP8jBwnXw4
-
Üyelik
11.09.2013
-
Yaş/Cinsiyet
30 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İzmir
-
Ad Soyad
A** K**
-
Mesajlar
1077
-
Beğeniler
361 / 361
-
Ticaret
33, (%100)
Hocam checkboxlar için listview mi kullanıyorsunuz?
-
Üyelik
15.02.2017
-
Yaş/Cinsiyet
27 / E
-
Meslek
Girişimci ve İçerik Üreticisi
-
Konum
Aydın
-
Ad Soyad
U** K**
-
Mesajlar
540
-
Beğeniler
109 / 118
-
Ticaret
0, (%0)
Android konusunda çok cahilim. 10 günlük bir bilgim var. 12 ayda 12 startup diye bir meydan okumaya girdim. Her ay bir startup çıkartmaya çalışıyorum. Hiç bilmediğim alanlarda bunu yapmayı deniyorum. Androidi çok az biliyorum. 10 günlük bilgi ama php temelim var. Yazılım mantığına hakimim.
Şu an listviewi bilmiyorum mesela. Ben checkboxları linearlayout ile sıraladım. Şöyle diyemiyor muyuz?
"LinearLayout altındaki tüm checkboxlardan en az biri veya en fazla biri seçildiyse"
Tek checkboxı yapabiliyorum ama projede 100+ fazla var. Pratik bir şekilde çözülmeli.
Baştan Sona PHP Eğitimi ➡ youtu.be/TQP8jBwnXw4
-
Üyelik
11.09.2013
-
Yaş/Cinsiyet
30 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İzmir
-
Ad Soyad
A** K**
-
Mesajlar
1077
-
Beğeniler
361 / 361
-
Ticaret
33, (%100)
Hocam aslında listview ile bu işi yapsanız işiniz çok daha kolaylaşır.
Sizin sorunuza gelince;
LinearLayout linearLayout= (LinearLayout) view.findViewById(R.id.linearLayout); //layout idniz
int count = linearLayout.getChildCount();
int checkCount = 0;
for (int i = 0; i < count; i++) {
View v = linearLayout.getChildAt(i);
if (v instanceof CheckBox && ((CheckBox) v)..isChecked()) {
checkCount++;
}
if(checkCount > 10) //bu kontrolü 10'un üzerine çıktığında boş yere
break; //for'un dönmesine neden olmaması için yapıyoruz
}
if(checkCount == 0)
//hiç checkbox seçili değil
else if(checkCount>10)
//10'dan fazla seçili
//(hata vermeyecekseniz sadece butonu enable disable
//yapacaksanız üstteki 2 if yerine alttaki iş görür)
if(checkCount >= 1 && checkCount <= 10)
//buton.enabled = true
else
//buton.enabled = false
-
Üyelik
15.02.2017
-
Yaş/Cinsiyet
27 / E
-
Meslek
Girişimci ve İçerik Üreticisi
-
Konum
Aydın
-
Ad Soyad
U** K**
-
Mesajlar
540
-
Beğeniler
109 / 118
-
Ticaret
0, (%0)
AhmetKarabulut adlı üyeden alıntı
Hocam aslında listview ile bu işi yapsanız işiniz çok daha kolaylaşır.
Sizin sorunuza gelince;
LinearLayout linearLayout= (LinearLayout) view.findViewById(R.id.linearLayout); //layout idniz
int count = linearLayout.getChildCount();
int checkCount = 0;
for (int i = 0; i < count; i++) {
View v = linearLayout.getChildAt(i);
if (v instanceof CheckBox && ((CheckBox) v)..isChecked()) {
checkCount++;
}
if(checkCount > 10) //bu kontrolü 10'un üzerine çıktığında boş yere
break; //for'un dönmesine neden olmaması için yapıyoruz
}
if(checkCount == 0)
//hiç checkbox seçili değil
else if(checkCount>10)
//10'dan fazla seçili
//(hata vermeyecekseniz sadece butonu enable disable
//yapacaksanız üstteki 2 if yerine alttaki iş görür)
if(checkCount >= 1 && checkCount <= 10)
//buton.enabled = true
else
//buton.enabled = false
Bu dilde çok yeni olduğum için yapamadım. :s Bunu
public class MainActivity extends AppCompatActivity {
içinde denedim olmadı.
Senin yazdığın
btn.enabled = true
kodunu çalıştıramadım ben de
btn.setEnabled(true);
olarak değiştirdim.
Ayriyeten şu kodu bir türlü anlayamıyor.
LinearLayout linearLayout= (LinearLayout) view.findViewById(R.id.linearLayout); //layout idniz
Bu koddaki "view"i anlayamıyor.
Viewsiz deneyincede hep disable kalıyor.
Son olarak btn. dediğim buton bu biraz komik oldu :)
Button btn = findViewById(R.id.button2);
Baştan Sona PHP Eğitimi ➡ youtu.be/TQP8jBwnXw4
-
Üyelik
11.09.2013
-
Yaş/Cinsiyet
30 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İzmir
-
Ad Soyad
A** K**
-
Mesajlar
1077
-
Beğeniler
361 / 361
-
Ticaret
33, (%100)
Hocam ben birebir kodu vermemiştim. Psedo olarak yazdım telefondan o yüzden çalışmaması normal. btn.setEnabled(true); doğrusu. hata olan kısım nedir tam anlayamadım ama?
-
Üyelik
15.02.2017
-
Yaş/Cinsiyet
27 / E
-
Meslek
Girişimci ve İçerik Üreticisi
-
Konum
Aydın
-
Ad Soyad
U** K**
-
Mesajlar
540
-
Beğeniler
109 / 118
-
Ticaret
0, (%0)
Baştan Sona PHP Eğitimi ➡ youtu.be/TQP8jBwnXw4
-
Üyelik
11.09.2013
-
Yaş/Cinsiyet
30 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İzmir
-
Ad Soyad
A** K**
-
Mesajlar
1077
-
Beğeniler
361 / 361
-
Ticaret
33, (%100)
view'ı silebilirsiniz hocam.
Ama bu kodları oncreate e koyarsanız on create(yaratma) aşamasında çalışacağı için kod hiç bir checkbox seçili olmayacaktır. checkboxların checked change eventine koymalısınız. ayrı ayrı eventleri varsa bir method çağırabilirsiniz, tüm bunlar dışında kolay yoldan çözeyim derseniz global bir değişken tutup tiklenen checkboxların changed eventinde değişkeni arttırıp azaltabilirsiniz de :)
-
Üyelik
15.02.2017
-
Yaş/Cinsiyet
27 / E
-
Meslek
Girişimci ve İçerik Üreticisi
-
Konum
Aydın
-
Ad Soyad
U** K**
-
Mesajlar
540
-
Beğeniler
109 / 118
-
Ticaret
0, (%0)
AhmetKarabulut adlı üyeden alıntı
view'ı silebilirsiniz hocam.
Ama bu kodları oncreate e koyarsanız on create(yaratma) aşamasında çalışacağı için kod hiç bir checkbox seçili olmayacaktır. checkboxların checked change eventine koymalısınız. ayrı ayrı eventleri varsa bir method çağırabilirsiniz, tüm bunlar dışında kolay yoldan çözeyim derseniz global bir değişken tutup tiklenen checkboxların changed eventinde değişkeni arttırıp azaltabilirsiniz de :)
İstediğim kodu sonunda senin yardımınla yazdım. Teşekkürler, bu arada youtube.com/ugurkilci adresinde bu aşamaların vloglarını yayınlayacağım. Eğer izin verirsen senden de bahsetmek istiyorum. Gelişmeleri de instagram.com/12ayda12startup ta paylaşıyorum :)
Baştan Sona PHP Eğitimi ➡ youtu.be/TQP8jBwnXw4
-
Üyelik
11.09.2013
-
Yaş/Cinsiyet
30 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İzmir
-
Ad Soyad
A** K**
-
Mesajlar
1077
-
Beğeniler
361 / 361
-
Ticaret
33, (%100)
Rica ederim hocam ne demek faydam olduysa ne mutlu :) tabii ki bahsedebilirsiniz başarılar dilerim :)
1 kişi bu mesajı beğendi.