Kullanıcı dialog ekranına rakam girecek daha sonra anasayfada bu rakam gözükecek aslında daha önce benzerini yaptım ama burda hata nerde bulamadım. Anasayfa için kullanılan kodlarda belirttiğim gibi edittext i sorusayisialtext e aktardım ama bunu ekrana yazdırdığım zaman ekran da hiçbir şey görünmüyor
Dialog kodları
public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.secenekler) { LayoutInflater layoutInflater=LayoutInflater.from(this); View layout=layoutInflater.inflate(R.layout.secenekler,null); final Button hedefvazgec= (Button) layout.findViewById(R.id.hedefvazgec); final Button hedefkayit= (Button) layout.findViewById(R.id.hedefkayit); final EditText hedefsoru= (EditText) layout.findViewById(R.id.hedefsoru); AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("Seçenekler"); builder.setView(layout); final AlertDialog secenekdialog =builder.create(); secenekdialog.show(); hedefvazgec.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { secenekdialog.dismiss(); } }); hedefkayit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { hedefsoru.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override public void onTextChanged(CharSequence s, int start, int before, int count) { try { hedef_sorusayisi=Integer.valueOf(s.toString());
@Override public void afterTextChanged(Editable s) {
}
}); } });
Anasayfa için kullanılan kodlar
tablo.removeAllViews(); Veritabani db=new Veritabani(getApplicationContext()); List<Ogrenci> ogrenciList=new ArrayList<Ogrenci>(); ogrenciList=db.TumKayitlar(); TextView sorusayisialtext=new TextView(Cizelge.this); sorusayisialtext.setText(hedef_sorusayisi); // ortalama ve toplam soru sayısı burada kodlanacak long enkucuk=ogrenciList.get(ogrenciList.size()-1).getTarih(); long enbuyuk=ogrenciList.get(0).getTarih(); Date fark= new Date(enbuyuk-enkucuk);
int toplam_soru=0; for (Ogrenci ogrenci:ogrenciList){ toplam_soru=toplam_soru+ogrenci.getSoru();
} int ortalama_soru=toplam_soru/fark_gun; if (ortalama_soru>=100){
BURADA sorusayisialtext OLMADIĞI ZAMAN PROGRAM SORUNSUZ ÇALIŞIYOR, OLDUĞU ZAMAN İSE ANASAYFA BOŞ OLUYOR HİÇBİR YAZI GÖZÜKMÜYOR yazi.setText("Tebrikler! günlük"+ sorusayisialtext+ "soru hedefini aştınız.\n Günlük ortalama soru sayısı:"+ ortalama_soru +" \n Toplam çözülen soru sayısı:"+ toplam_soru); yazi.setTextColor(Color.WHITE); yazi.setBackgroundColor(Color.GREEN); } else { BURADA sorusayisialtext OLMADIĞI ZAMAN PROGRAM SORUNSUZ ÇALIŞIYOR, OLDUĞU ZAMAN İSE ANASAYFA BOŞ OLUYOR HİÇBİR YAZI GÖZÜKMÜYOR yazi.setText("Malesef günlük" + sorusayisialtext + " soru hedefini gerçekleştiremediniz.\n Günlük ortalama soru sayısı:"+ ortalama_soru +" \n Toplam çözülen soru sayısı:"+ toplam_soru); yazi.setTextColor(Color.WHITE); yazi.setBackgroundColor(Color.RED); }
//------------------------------------------------- for (Ogrenci ogrenci:ogrenciList){
TableRow satir= new TableRow(Cizelge.this); satir.setGravity(Gravity.CENTER);
TextView tarihyazi= new TextView(Cizelge.this); tarihyazi.setPadding(2,2,2,2); tarihyazi.setTextColor(Color.WHITE);
java.text.DateFormat df= new java.text.SimpleDateFormat("dd/MM/yyyy"); Date date= new Date(ogrenci.getTarih()); tarihyazi.setText(df.format(date)+" ");
TextView dersyazi= new TextView(Cizelge.this); dersyazi.setPadding(2,2,2,2); dersyazi.setTextColor(Color.WHITE); dersyazi.setText(ogrenci.getDers()+" ");
TextView soruyazi= new TextView(Cizelge.this); soruyazi.setPadding(2,2,2,2); soruyazi.setTextColor(Color.WHITE); soruyazi.setText(String.valueOf(ogrenci.getSoru()));
sorusayisialtext Textview di onu değiştirdim String olarak tanımladım
String sorusayisialtext = hedefsoru.getText().toString(); yazi.settext(sorusayisialtext) şeklinde yazdım ama olmadı yine dediğinizi tam anlayamadım yazdığınız kodu bir şeye eşitlemem gerekmiyor mu?
İlk verdiğiniz kodlarda şöyle bir değişiklik yapmayı deneyin:
BURADA sorusayisialtext OLMADIĞI ZAMAN PROGRAM SORUNSUZ ÇALIŞIYOR, OLDUĞU ZAMAN İSE ANASAYFA BOŞ OLUYOR HİÇBİR YAZI GÖZÜKMÜYOR yazi.setText("Tebrikler! günlük"+ sorusayisialtext.getText().toString+ "soru hedefini aştınız.\n Günlük ortalama soru sayısı:"+ ortalama_soru +" \n Toplam çözülen soru sayısı:"+ toplam_soru); yazi.setTextColor(Color.WHITE); yazi.setBackgroundColor(Color.GREEN);
Post ta yapistirdiginiz kodu çok detaylı olmasa da biraz inceledim. Birkaç hata gözüme çarptı. Düzeltmeyi deneyin ancak bu hatalardan kaynaklı olmayabilir sorununuz. Tavsiyem bazı hazır metodları kullanırken setText,getText, veya veri tipleri dönüşümü için valueof parseİnt gibi, dokümantasyon sayfasını tarayıcıda açık tutmakta fayda var.
Edittext ten veri alırken integer.valueof demişsin iz. Bu şekilde alırsanız girilen veriyi obje şeklinde tutar. Integer.parseİnt derseniz eğer size direk int tipinde sunar veriyi.
Bundan sonra setText metodu,için , parametre olarak stirng tipinde değişken alıp işlem yapar. Siz İnteger object şeklinde dondurdugunuz yapıyı olduğu yazmaya calışmışsınız. Yukarda yazdığım gibi int tipinde alın veriyi. Yazdırırken de ya string.valueof ile tekrar string tipine ekleyebilirsiniz ya da setText(""+xyxyxy) şeklinde yazabilirsiniz.
Dediğim gibi bunlardan kaynaklanmiyor olabilir. Ama denemekte fayda var. Mobilde pek iyi aciklayamamis olabilirim.
< Bu mesaj bu kişi tarafından değiştirildi an agony -- 2 Ağustos 2017; 20:57:39 >
İlk verdiğiniz kodlarda şöyle bir değişiklik yapmayı deneyin:
BURADA sorusayisialtext OLMADIĞI ZAMAN PROGRAM SORUNSUZ ÇALIŞIYOR, OLDUĞU ZAMAN İSE ANASAYFA BOŞ OLUYOR HİÇBİR YAZI GÖZÜKMÜYOR yazi.setText("Tebrikler! günlük"+ sorusayisialtext.getText().toString+ "soru hedefini aştınız.\n Günlük ortalama soru sayısı:"+ ortalama_soru +" \n Toplam çözülen soru sayısı:"+ toplam_soru); yazi.setTextColor(Color.WHITE); yazi.setBackgroundColor(Color.GREEN);
Teşekkürler cevap için denedim ama sorun devam etti öyle yapınca anasayfadaki hiçbir textview gözükmüyor ilginç bir şekilde
Post ta yapistirdiginiz kodu çok detaylı olmasa da biraz inceledim. Birkaç hata gözüme çarptı. Düzeltmeyi deneyin ancak bu hatalardan kaynaklı olmayabilir sorununuz. Tavsiyem bazı hazır metodları kullanırken setText,getText, veya veri tipleri dönüşümü için valueof parseİnt gibi, dokümantasyon sayfasını tarayıcıda açık tutmakta fayda var.
Edittext ten veri alırken integer.valueof demişsin iz. Bu şekilde alırsanız girilen veriyi obje şeklinde tutar. Integer.parseİnt derseniz eğer size direk int tipinde sunar veriyi.
Bundan sonra setText metodu,için , parametre olarak stirng tipinde değişken alıp işlem yapar. Siz İnteger object şeklinde dondurdugunuz yapıyı olduğu yazmaya calışmışsınız. Yukarda yazdığım gibi int tipinde alın veriyi. Yazdırırken de ya string.valueof ile tekrar string tipine ekleyebilirsiniz ya da setText(""+xyxyxy) şeklinde yazabilirsiniz.
Dediğim gibi bunlardan kaynaklanmiyor olabilir. Ama denemekte fayda var. Mobilde pek iyi aciklayamamis olabilirim.
Çok teşekkürler cevap için dediğiniz gibi yaptım oldu sadece bazen edittext e rakamı ilk girdiğimde yazı değişmiyor, rakamı silip tekrar yazdığımda değişiyor emulator ile ilgili bir sorun herhalde.
Dialog kodları
Anasayfa için kullanılan kodlar
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.