Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
1878
Tıklama
0
Öne Çıkarma
Android Edittext den Rakam Alıp Textview e Yazdırmak
G
8 yıl
Yarbay
Konu Sahibi

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



G
8 yıl
Er

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ı >
Bu mesaja 1 cevap geldi.
G
8 yıl
Yarbay
Konu Sahibi

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?


Bu mesaja 1 cevap geldi.
S
8 yıl
Teğmen

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


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Grkwnxs
A
8 yıl
Yüzbaşı

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ı >
Bu mesaja 1 cevap geldi.
G
8 yıl
Yarbay
Konu Sahibi

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



G
8 yıl
Yarbay
Konu Sahibi

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.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.