superSharp
- Forum-Beiträge: 89
19.10.2013, 23:41:36 via Website
19.10.2013 23:41:36 via Website
Guten Abend Android Coder,
für die ersten Schritte programmiere ich gerade eine App, die beim Drücken auf einen Button in einem Textfeld die aktuelle Uhrzeit ausgibt. Das funktioniert auch soweit, allerdings nur beim ersten Klick auf den Button, beim zweiten wird das neue Datum nicht neu reingeschrieben. Woran könnte das liegen?
Folgender Code:
Dann noch eine Frage:
Wenn ich eine Main-Methode erstellen will um darin den Code zu speichern, bekomme ich beim Casten des Buttons und der TextView den Fehler:
Mit folgendem Code:
Ich hätte das halt gerne etwas geordnet und nicht alles in der onCreate() Mehode.
für die ersten Schritte programmiere ich gerade eine App, die beim Drücken auf einen Button in einem Textfeld die aktuelle Uhrzeit ausgibt. Das funktioniert auch soweit, allerdings nur beim ersten Klick auf den Button, beim zweiten wird das neue Datum nicht neu reingeschrieben. Woran könnte das liegen?
Folgender Code:
1package com.example.androidapptest;
2
3import android.os.Bundle;
4import android.app.Activity;
5import android.view.Menu;
6import android.view.View;
7import android.widget.Button;
8import android.widget.TextView;
9import java.util.Calendar;
10
11public class MainActivity extends Activity {
12
13 @Override
14 protected void onCreate(Bundle savedInstanceState) {
15 super.onCreate(savedInstanceState);
16 setContentView(R.layout.activity_main);
17
18 Button button1;
19 final TextView textView1;
20 final Calendar cal = Calendar.getInstance();
21
22 button1 = (Button)findViewById(R.id.button1);
23 textView1 = (TextView)findViewById(R.id.textView1);
24
25
26 button1.setOnClickListener(new View.OnClickListener()
27 {
28
29 @Override
30 public void onClick(View v)
31 {
32 textView1.setText(cal.getTime().toString());
33 }
34 });
35 }
36
37 @Override
38 public boolean onCreateOptionsMenu(Menu menu) {
39 // Inflate the menu; this adds items to the action bar if it is present.
40 getMenuInflater().inflate(R.menu.main, menu);
41 return true;
42 }
43
44}
2
3import android.os.Bundle;
4import android.app.Activity;
5import android.view.Menu;
6import android.view.View;
7import android.widget.Button;
8import android.widget.TextView;
9import java.util.Calendar;
10
11public class MainActivity extends Activity {
12
13 @Override
14 protected void onCreate(Bundle savedInstanceState) {
15 super.onCreate(savedInstanceState);
16 setContentView(R.layout.activity_main);
17
18 Button button1;
19 final TextView textView1;
20 final Calendar cal = Calendar.getInstance();
21
22 button1 = (Button)findViewById(R.id.button1);
23 textView1 = (TextView)findViewById(R.id.textView1);
24
25
26 button1.setOnClickListener(new View.OnClickListener()
27 {
28
29 @Override
30 public void onClick(View v)
31 {
32 textView1.setText(cal.getTime().toString());
33 }
34 });
35 }
36
37 @Override
38 public boolean onCreateOptionsMenu(Menu menu) {
39 // Inflate the menu; this adds items to the action bar if it is present.
40 getMenuInflater().inflate(R.menu.main, menu);
41 return true;
42 }
43
44}
Dann noch eine Frage:
Wenn ich eine Main-Methode erstellen will um darin den Code zu speichern, bekomme ich beim Casten des Buttons und der TextView den Fehler:
Cannot make a static reference to the non static method findViewById
Mit folgendem Code:
1package com.example.androidapptest;
2
3import android.os.Bundle;
4import android.app.Activity;
5import android.view.Menu;
6import android.view.View;
7import android.widget.Button;
8import android.widget.TextView;
9import java.util.Calendar;
10
11public class MainActivity extends Activity {
12
13 @Override
14 protected void onCreate(Bundle savedInstanceState) {
15 super.onCreate(savedInstanceState);
16 setContentView(R.layout.activity_main);
17
18 }
19
20 @Override
21 public boolean onCreateOptionsMenu(Menu menu) {
22 // Inflate the menu; this adds items to the action bar if it is present.
23 getMenuInflater().inflate(R.menu.main, menu);
24 return true;
25 }
26
27 public static void main(String[] args)
28 {
29 final Button button1;
30 button1 = (Button)findViewById(R.id.button1);
31 TextView textView1 = (TextView)findViewById(R.id.textView1);
32
33 Calendar cal = Calendar.getInstance();
34
35 button1.setOnClickListener(new View.OnClickListener()
36 {
37
38 @Override
39 public void onClick(View v)
40 {
41 textView1.setText(cal.getTime().toString());
42 }
43 });
44 }
45
46}
2
3import android.os.Bundle;
4import android.app.Activity;
5import android.view.Menu;
6import android.view.View;
7import android.widget.Button;
8import android.widget.TextView;
9import java.util.Calendar;
10
11public class MainActivity extends Activity {
12
13 @Override
14 protected void onCreate(Bundle savedInstanceState) {
15 super.onCreate(savedInstanceState);
16 setContentView(R.layout.activity_main);
17
18 }
19
20 @Override
21 public boolean onCreateOptionsMenu(Menu menu) {
22 // Inflate the menu; this adds items to the action bar if it is present.
23 getMenuInflater().inflate(R.menu.main, menu);
24 return true;
25 }
26
27 public static void main(String[] args)
28 {
29 final Button button1;
30 button1 = (Button)findViewById(R.id.button1);
31 TextView textView1 = (TextView)findViewById(R.id.textView1);
32
33 Calendar cal = Calendar.getInstance();
34
35 button1.setOnClickListener(new View.OnClickListener()
36 {
37
38 @Override
39 public void onClick(View v)
40 {
41 textView1.setText(cal.getTime().toString());
42 }
43 });
44 }
45
46}
Ich hätte das halt gerne etwas geordnet und nicht alles in der onCreate() Mehode.
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.