2011-04-14 16 views
5

Temel sayacı yapmaya çalışıyorum.Düğmeye tıklandıktan sonra bir TextView güncelleniyor mu?

Buradaki fikir, kullanıcının düğmeye basması ve uygulamanın düğmenin kaç kez basıldığını görüntülemesidir.

Sorunum, metin görünümünü nasıl güncelleyeceğinden emin değilim. Benim anlayışım, XML bölümleri, çalışma zamanı üzerinde taşa dizilmiş dizeleri geri almasıdır. Öyleyse "final" olan bir şeyi nasıl "güncelleyeceğim"?

Anladığım kadarıyla, düğmeye basıldığında, 1 ile sayı artırıyorum. Ardından, komut istemi dizgesini alır (Tıklamalar:% d) ve bunu ekrana görüntüler. Ancak, bunu ne zaman çalıştırsam, sadece çöker.

public class HelloAndroid extends Activity{ 
/** Called when the activity is first created. */ 

int num = 0; 
TextView tView; 
Button clickhere; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    tView = (TextView) findViewById(R.id.textView1); 
    clickhere = (Button) findViewById(R.id.button1); 

    clickhere.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      num++; 
      String display = String.format(getString(R.string.prompt), num); 
      tView.setText(display); 
      setContentView(tView); 

     } 
    }); 

} 
} 

Herhangi bir yardım için teşekkür ederiz.

+0

Sadece önceki eklemelere hızlı bir ekleme yapın: setContentView (tView); onClick() etkinliğinde. – Aleadam

+0

Çok teşekkür ederim Aleadam! Çalışmak için ihtiyacım olan şey buydu! Ana çalışma Brian ve corey tarafından yapılmasına rağmen, – RTL

+0

çalışmasına sevindiniz. Onlar için +1. Buradaki ilk sorununun da olduğunu görüyorum, bu yüzden sormadan önce ortaya koyduğu çabayı gösteren iyi biçimlendirilmiş bir soru için size şükürler olsun. +1 sizin için de :) – Aleadam

cevap

4

Bunu (düğme tıklandığında değilken) tıklandığında TextView ayarlarken eşit TextView'un kuracak, bunu yapmanız ne anlama geldiğini değil tahmin ediyorum. Düğmeye tıklandığında TextView değerini ayarlamak için aşağıdan kodunuzu güncelledim.

public class HelloAndroid extends Activity{ 
/** Called when the activity is first created. */ 

int num = 0; 
TextView tView; 
Button clickhere; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    tView = (TextView) findViewById(R.id.textView1); 
    clickhere = (Button) findViewById(R.id.button1); 

    clickhere.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      String display = String.format(getString(R.string.prompt, Integer.toString(++num))); 
      tView.setText(display); 
     } 
    }); 

    //you don't need an event handler on the TextView (given the description of the problem) 

} 
} 
+0

numaralı telefonu aradığınızda bu değişikliği görüntülemelidir. Teşekkürler, bunu cevaplamadan hemen önce anladım ve bu kısmı düzelttim, ancak her seferinde denediğimde ve tıklattığımda hala çöküyorum. – RTL

2
clickhere.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     num++; 
     tView.setText(Integer.toString(num)); 
    } 
}); 

bu num

+0

Yardımlarınız için teşekkürler, ancak bunun textView olarak değiştirildiğini görüyorum. Ama değişimi nasıl gösterebilirim? – RTL

+0

setText – corey