Şimdi Ara

Android Edittext den Rakam Alıp Textview e Yazdırmak

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
7
Cevap
0
Favori
1.830
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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());


    }catch (NumberFormatException e){
    hedef_sorusayisi=0;
    }
    }

    @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 fark_gun=((fark.getYear() % 70) * 365 ) + (fark.getMonth() * 30) + (fark.getDate() );
    fark_gun++;

    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()));

    satir.addView(tarihyazi);
    satir.addView(dersyazi);
    satir.addView(soruyazi);

    tablo.addView(satir);
    }
    }







  • Merhaba

    sorusayisaltext bir değişken değil bir nesne



    sorusayisialtext.getText().toString()



    birde bunu dener misin



    < Bu mesaj bu kişi tarafından değiştirildi Guventpl -- 1 Ağustos 2017; 13:56:43 >
    < Bu ileti mini sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: Guventpl

    Merhaba

    sorusayisaltext bir değişken değil bir nesne



    sorusayisialtext.getText().toString()



    birde bunu dener misin

    Teşekkürler cevap için

    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?
  • Grkwnxs G kullanıcısına yanıt
    İ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 >
    < Bu ileti mobil sürüm kullanılarak atıldı >




  • quote:

    Orijinalden alıntı: swodniw

    İ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
  • quote:

    Orijinalden alıntı: forumkeeper02

    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.




  • Yapay Zeka’dan İlgili Konular
    İpad'e Pdf Atmak
    14 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.