2017-12-29 1 views
-6

Dies ist der einfache Code, den ich erklären applied.Please warum ein solches Verhalten place.Oncreate nimmt nicht warum dann kann es wieder auf Schaltfläche anklickt aktualisiert undOncreate Funktion wird einmal aufgerufen, warum kann der Button dann immer wieder funktionieren?

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    gaggan(); 
} 

public void gaggan(){ 
    Button bt =(Button) findViewById(R.id.button4); 
    bt.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      EditText e2= (EditText) findViewById(R.id.editText); 
      EditText e3= (EditText) findViewById(R.id.editText3); 
      int num1=Integer.parseInt(e2.getText().toString()); 
      int num2=Integer.parseInt(e3.getText().toString()); 
      int sum=num1+num2; 
      Toast.makeText(MainActivity.this,Integer.toString(sum), Toast.LENGTH_SHORT).show(); 
     } 
+0

haben Sie das Debuggen versucht noch? – MrSmith42

+0

Der Code ist korrekt. Die App funktioniert gut. –

+0

Ich wollte den Grund für ein solches Verhalten wissen –

Antwort

1

bt.setOnClickListener wieder aufgerufen wird Ihre Click-Listener registrieren (new View.OnClickListener() {..} auf die Schaltfläche und somit immer dann, wenn die Schaltfläche geklickt wird, die onClick() Methode Ihrer Klick-Listener ausgeführt wird.

die Android docs haben eine ausführlichere Erklärung

+0

Aber Sir, wenn ich gaggan() nicht in Oncreate-Methode setzen, geschieht dies nicht Das ist warum ich verwirrt bin –

+0

Wenn Sie 'gaggan()' nicht nennen (was auch immer das bedeutet), dann wird Ihr Klick-Listener nie registriert . – TmTron

Verwandte Themen