Button Funktioniert erst auf 2ten Klick

  • Antworten:3
Moro
  • Forum-Beiträge: 4

15.01.2014, 09:56:43 via Website

Hallo Leute,

habe vor kurzem auch angefangen Android Apps zu entwickeln. Bei meiner jetzigen App habe ich 2 Buttons. Der ImageButton3 (ib3) startet einen Timer und während dieser läuft wird ein Label auf 1 gesetzt. Der ImageButton2 (ib2) schaltet einfach nur von 0 auf 1 und umgekehrt. Mein Problem ist jetzt, dass der ib2 erst auf das 2te mal klicken funktioniert, der ib3 aber gleich auf anhieb ... Hab kp woran das liegen kann. Hier mal noch der Quellcode:

1public class MySubActivity extends Activity
2{
3 //Was geschieht wenn die App geöffnet wird
4 @Override
5 protected void onCreate(Bundle savedInstanceState)
6 {
7 super.onCreate(savedInstanceState); //Speichere den aktuellen Status
8 setContentView(R.layout.seclayout); //Setze SecLayout als aktuell sichtbare seite
9
10 // Initialisiere Image Button Zurück
11 ImageButton ib_back = (ImageButton) findViewById(R.id.imageButton1);
12
13 // Überwache ob Button geklickt wurde
14 ib_back.setOnClickListener(new OnClickListener()
15 {
16 //Was geschieht beim Button Klick
17 public void onClick (View v)
18 {
19 finish();
20 }
21 });
22
23 //Initialisiere Image Button 2
24 final ImageButton ib2 = (ImageButton) findViewById(R.id.ImageButton08);
25
26 //Initialisiere Text View 3
27 final TextView tv3 = (TextView) findViewById(R.id.textView3);
28
29// Überwache ob Button geklickt wurde
30 ib2.setOnClickListener(new OnClickListener()
31 {
32 //Was geschieht beim Button Klick
33 public void onClick(View v)
34 {
35 String newText = tv3.getText().toString(); //
36 if (newText == "0")
37 {
38 tv3.setText("1");
39 //iv1.setImageResource(R.drawable.input_red);
40 } else
41 tv3.setText("0");
42 }
43 });
44
45 final ImageButton ib3 = (ImageButton) findViewById(R.id.imageButton2);
46 final TextView tv4 = (TextView) findViewById(R.id.TextView02);
47 final TextView tv1 = (TextView) findViewById(R.id.textView1);
48
49 ib3.setOnClickListener(new OnClickListener()
50 {
51 public void onClick(View v)
52 {
53 new CountDownTimer(7000, 1000)
54 {
55 public void onTick(long millisUntilFinished)
56 {
57 tv1.setText("Seconds remaining: " + millisUntilFinished / 1000);
58 tv4.setText("1");
59
60 ib3.setOnClickListener(new OnClickListener()
61 {
62 public void onClick(View v)
63 {
64 tv4.setText("0");
65 cancel();
66 start();
67 }
68 });
69 }
70
71 public void onFinish()
72 {
73 tv1.setText("done!");
74 tv4.setText("0");
75 }
76 }.start();
77 }
78 });
79 }
80}

Weiß einer Rat?

Gruß
Moro

Antworten
SvenDD
  • Forum-Beiträge: 272

15.01.2014, 10:25:02 via Website

Probiere mal statt

1newText == "0"

1newText.equals("0")

aus.

Antworten
Michele
  • Forum-Beiträge: 1.525

15.01.2014, 16:20:26 via Website

Hallo.

1String newText = tv3.getText().toString(); //
2if (newText == "0")
3{

Man vergleicht einen String nicht so.
Sondern mit equals.
Also
1newText.equals

EDIT: Ach SvenDD hatte es ja schon geschrieben.

LG

— geändert am 15.01.2014, 16:22:14

Antworten
Moro
  • Forum-Beiträge: 4

15.01.2014, 17:54:55 via Website

Damit hat es funktioniert danke :)

Antworten