the application stopps unexpectedly

  • Antworten:3
  • Bentwortet
Gelöschter Account
  • Forum-Beiträge: 21

22.12.2010, 13:18:53 via Website

Hallo,
ich arbeite mich zur Zeit in die Android Programmierung ein und stehe vor einem kleinen Problem. Ich versuche eine neue Activity per Klick auf einem Button zu öffnen, jedoch wird daraufhin die Anwendung plötzlich gestoppt. Ich vermute, dass ich den Intent falsch konstruiert habe.
Beim Aufruf von startActivity() habe ich es auch schon mit "null" und "this" als ersten Übergabeparameter versucht. Es kam aber zu selbigen Ergebnis.
Könnte mir da einer weiterhelfen? Vielen Dank im Voraus!

Manifest:

1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="sv.measurementsystem"
4 android:versionCode="1"
5 android:versionName="1.0">
6 <application
7 android:icon="@drawable/icon"
8 android:label="@string/app_name"
9 android:theme="@android:style/Theme.Light">
10 <activity android:name=".StartScreen"
11 android:label="@string/app_name">
12 <intent-filter>
13 <action android:name="android.intent.action.MAIN" />
14 <category android:name="android.intent.category.LAUNCHER" />
15 </intent-filter>
16 </activity>
17 <activity android:name=".PreferenceScreen">
18 <intent-filter>
19 <action android:name="android.intent.action.VIEW"/>
20 <category android:name="android.intent.category.DEFAULT" />
21 </intent-filter>
22 </activity>
23 </application>
24</manifest>

Die aufrufende Activity:

1package sv.measurementsystem;
2
3import android.app.Activity;
4import android.content.Intent;
5import android.os.Bundle;
6import android.view.ContextMenu;
7import android.view.ContextMenu.ContextMenuInfo;
8import android.view.Menu;
9import android.view.View;
10import android.widget.Button;
11
12
13public class StartScreen extends Activity {
14 /** Called when the activity is first created. */
15 private Button myButton;
16
17 @Override
18
19 public void onCreate(Bundle savedInstanceState) {
20 super.onCreate(savedInstanceState);
21
22 setContentView(R.layout.startscreen);
23 setTitle(R.string.startscreen_title);
24 //getWindow().setBackgroundDrawableResource(R.drawable.icon);
25
26 registerForContextMenu(findViewById(R.id.btn_start_measurement)); //Registering of Context-menus
27 registerForContextMenu(findViewById(R.id.btn_show_result));
28
29 myButton = (Button)findViewById(R.id.opt_showPrefs);
30 myButton.setOnClickListener(new View.OnClickListener() {
31
32 @Override
33 public void onClick(View v) {
34 startActivity(new Intent(StartScreen.this, PreferenceScreen.class));
35 }
36 });
37
38 }
39
40 public boolean onCreateOptionsMenu(Menu menu) {
41 super.onCreateOptionsMenu(menu);
42
43 getMenuInflater().inflate(R.menu.startmenu, menu);
44 return true;
45 }
46
47 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
48 super.onCreateContextMenu(menu, v, menuInfo);
49
50 switch( v.getId() ) { //Zuweisung der Kontextmenüs zu den jeweiligen Views
51 case R.id.btn_start_measurement : {
52 getMenuInflater().inflate(R.menu.helpmenu, menu);
53 return;
54 }
55 case R.id.btn_show_result : {
56 getMenuInflater().inflate(R.menu.helpmenu, menu);
57 return;
58 }
59 }
60 }
61
62}

Die aufgerufene Activity:

1package sv.measurementsystem;
2
3import android.os.Bundle;
4import android.preference.PreferenceActivity;
5
6public class PreferenceScreen extends PreferenceActivity {
7 public void onCreate(Bundle icicle) {
8 super.onCreate(icicle);
9 this.addPreferencesFromResource(R.xml.preferencescreen);
10 }
11}

Antworten
L3322
  • Forum-Beiträge: 467

22.12.2010, 13:44:21 via App

Was spuckt den die logcat so aus?

"Hard work beats talent, when talent fails to work hard"

Antworten
Gelöschter Account
  • Forum-Beiträge: 21

22.12.2010, 13:49:52 via Website

ich weiß leider nicht genau was mit "logcat" gemeint ist, aber ich vermute mal dass es die Ausgaben der Konsole sind :)

1[2010-12-22 13:46:34 - SV_Measurementsystem] ------------------------------
2[2010-12-22 13:46:34 - SV_Measurementsystem] Android Launch!
3[2010-12-22 13:46:34 - SV_Measurementsystem] adb is running normally.
4[2010-12-22 13:46:34 - SV_Measurementsystem] Performing sv.measurementsystem.StartScreen activity launch
5[2010-12-22 13:46:34 - SV_Measurementsystem] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'AndroidVirtual'
6[2010-12-22 13:46:34 - SV_Measurementsystem] WARNING: Application does not specify an API level requirement!
7[2010-12-22 13:46:34 - SV_Measurementsystem] Device API version is 8 (Android 2.2)
8[2010-12-22 13:46:35 - SV_Measurementsystem] Application already deployed. No need to reinstall.
9[2010-12-22 13:46:35 - SV_Measurementsystem] Starting activity sv.measurementsystem.StartScreen on device emulator-5554
10[2010-12-22 13:46:36 - SV_Measurementsystem] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=sv.measurementsystem/.StartScreen }

Antworten
Gelöschter Account
  • Forum-Beiträge: 21

22.12.2010, 14:03:48 via Website

Huch, ich glaub ich habe den Fehler gefunden!
Dachte ich würde die neue Activity starten, indem ich einen Button klicke, aber ich bemerke gerade dass es sich nicht um einen "Button" handelt, sondern um ein "optionItem". Danke trotzdem!
Der Aufruf der Activity funktioniert nun über den Methodenaufruf "onOptionsItemSelected"

— geändert am 22.12.2010, 14:31:21

Antworten