erster Click wird nicht "gelistened", aber zweiter schon. warum ?

  • Antworten:5
  • Bentwortet
Doniyor Jurabaev
  • Forum-Beiträge: 7

28.09.2011, 11:49:16 via Website

Hallo, ich bin Android Anfänger, habe einen kleinen App geschrieben. alles funktioniert soweit aber nur das hier nicht:

ich habe 4 Titels, die clickbar sind. aber wenn ich den app starte, und zum ersten mal auf einen der 4 titels clicke, passiert nichts, aber zweites mal dann geht alles. woran liegt das ? ich blicke nicht ganz durch.. bitte helfen !! ich poste hier meine ganze klasse,

1public class HelloWorldActivity extends Activity implements OnClickListener {
2
3 private TextView scient;
4 private TextView predict;
5 private TextView histor;
6 private TextView maths;
7
8 /** Called when the activity is first created. */
9 @Override
10 public void onCreate(Bundle savedInstanceState) {
11 super.onCreate(savedInstanceState);
12 setContentView(R.layout.main);
13
14 scient = (TextView) findViewById(R.id.science);
15 scient.setOnClickListener(this);
16
17 predict = (TextView) findViewById(R.id.prediction);
18 predict.setOnClickListener(this);
19
20 histor = (TextView) findViewById(R.id.history);
21 histor.setOnClickListener(this);
22
23 maths = (TextView) findViewById(R.id.maths);
24 maths.setOnClickListener(this);
25
26 }
27
28 @Override
29 public void onClick(View v) {
30 if (v == scient || v == predict || v == maths || v == histor) {
31 scient.setOnClickListener(new View.OnClickListener() {
32 @Override
33 public void onClick(View arg0) {
34 Intent intent = new Intent(getApplicationContext(),
35 Science_view.class);
36 startActivity(intent);
37
38 }
39 });
40
41 predict.setOnClickListener(new View.OnClickListener() {
42 @Override
43 public void onClick(View arg0) {
44 Intent intent = new Intent(getApplicationContext(),
45 Prediction_view.class);
46 startActivity(intent);
47
48 }
49 });
50
51 maths.setOnClickListener(new View.OnClickListener() {
52 @Override
53 public void onClick(View arg0) {
54 Intent intent = new Intent(getApplicationContext(),
55 Maths_view.class);
56 startActivity(intent);
57
58 }
59 });
60
61 histor.setOnClickListener(new View.OnClickListener() {
62 @Override
63 public void onClick(View arg0) {
64 Intent intent = new Intent(getApplicationContext(),
65 History_view.class);
66 startActivity(intent);
67
68 }
69 });
70 }
71 return;
72 }
73}

Antworten
tom_cat
  • Forum-Beiträge: 11.132

28.09.2011, 11:53:54 via Website

Hallo Doniyor,

ein herzliches Willkommen auf AndroidPIT.

Ich verschiebe Deine Frage mal in das Entwicklerforum. Da passt es besser.....

Natürlicher Verstand kann fast jeden Grad von Bildung ersetzen, aber keine Bildung den natürlichen Verstand. Arthur Schopenhauer App Reviews nach Einsatzzweck und hier noch das: Das-AndroidPITiden-Buch

Antworten
Doniyor Jurabaev
  • Forum-Beiträge: 7

28.09.2011, 11:56:21 via Website

Doniyor Jurabaev
Hallo, ich bin Android Anfänger, habe einen kleinen App geschrieben. alles funktioniert soweit aber nur das hier nicht:

ich habe 4 Titels, die clickbar sind. aber wenn ich den app starte, und zum ersten mal auf einen der 4 titels clicke, passiert nichts, aber zweites mal dann geht alles. woran liegt das ? ich blicke nicht ganz durch.. bitte helfen !! ich poste hier meine ganze klasse,

1public class HelloWorldActivity extends Activity implements OnClickListener {
2
3 private TextView scient;
4 private TextView predict;
5 private TextView histor;
6 private TextView maths;
7
8 /** Called when the activity is first created. */
9 @Override
10 public void onCreate(Bundle savedInstanceState) {
11 super.onCreate(savedInstanceState);
12 setContentView(R.layout.main);
13
14 scient = (TextView) findViewById(R.id.science);
15 scient.setOnClickListener(this);
16
17 predict = (TextView) findViewById(R.id.prediction);
18 predict.setOnClickListener(this);
19
20 histor = (TextView) findViewById(R.id.history);
21 histor.setOnClickListener(this);
22
23 maths = (TextView) findViewById(R.id.maths);
24 maths.setOnClickListener(this);
25
26 }
27
28 @Override
29 public void onClick(View v) {
30 if (v == scient || v == predict || v == maths || v == histor) {
31 scient.setOnClickListener(new View.OnClickListener() {
32 @Override
33 public void onClick(View arg0) {
34 Intent intent = new Intent(getApplicationContext(),
35 Science_view.class);
36 startActivity(intent);
37
38 }
39 });
40
41 predict.setOnClickListener(new View.OnClickListener() {
42 @Override
43 public void onClick(View arg0) {
44 Intent intent = new Intent(getApplicationContext(),
45 Prediction_view.class);
46 startActivity(intent);
47
48 }
49 });
50
51 maths.setOnClickListener(new View.OnClickListener() {
52 @Override
53 public void onClick(View arg0) {
54 Intent intent = new Intent(getApplicationContext(),
55 Maths_view.class);
56 startActivity(intent);
57
58 }
59 });
60
61 histor.setOnClickListener(new View.OnClickListener() {
62 @Override
63 public void onClick(View arg0) {
64 Intent intent = new Intent(getApplicationContext(),
65 History_view.class);
66 startActivity(intent);
67
68 }
69 });
70 }
71 return;
72 }
73}

Cool, danke.

Antworten
Doniyor Jurabaev
  • Forum-Beiträge: 7

28.09.2011, 11:56:48 via Website

okay, cool. danke

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

28.09.2011, 12:13:19 via Website

du setzt zuerst den onclickListener auf (this)

dann wird geklickt und du setzt den Listener auf (new OnclickListener:...)

warum setzt du das 2 mal?


Override
29 public void onClick(View v) {
30 if (v == scient) {

34 Intent intent = new Intent(getApplicationContext(),
35 Science_view.class);
36 startActivity(intent);
37
38 } else if(v === xxxxxx). ...
39 };

swordiApps Blog - Website

Doniyor Jurabaev

Antworten
Doniyor Jurabaev
  • Forum-Beiträge: 7

28.09.2011, 12:43:52 via Website

Ohjee, ich habe es nicht gesehen :(..

besten Dank..

Antworten