Dialog Problem

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

03.07.2010, 19:17:50 via Website

Hallo ich versuche gerade einen Custom Dialog zu erstellen,der über den Menü-Button "Information" geöffnet werden soll.

Dazu habe ich folgendes Layout erstellt:

layout/custom_dialog.xml
1<?xml version="1.0" encoding="UTF-8"?>
2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:id="@+id/layout_root"
4 android:orientation="horizontal"
5 android:layout_width="fill_parent"
6 android:layout_height="fill_parent"
7 android:padding="10dp"
8 >
9 <ImageView android:id="@+id/image"
10 android:layout_width="wrap_content"
11 android:layout_height="fill_parent"
12 android:layout_marginRight="10dp"
13 />
14 <TextView android:id="@+id/text"
15 android:layout_width="wrap_content"
16 android:layout_height="fill_parent"
17 android:textColor="#FFF"
18 />
19</LinearLayout>

Nun soll folgendes ausgeführt werden:

1AlertDialog.Builder builder2;
2 AlertDialog alert2;
3
4 Context mContext = getApplicationContext();
5 LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
6 View layout = inflater.inflate(R.layout.custom_dialog,
7 (ViewGroup) findViewById(R.id.layout_root));
8
9 TextView text = (TextView) layout.findViewById(R.id.text);
10 text.setText("Hello, this is a custom dialog!");
11 ImageView image = (ImageView) layout.findViewById(R.id.image);
12 image.setImageResource(R.drawable.icon);
13
14 builder2 = new AlertDialog.Builder(mContext);
15 builder2.setView(layout);
16 alert2 = builder2.create();

Leider gibt es immer einen FC....

Jemand eine idee

— geändert am 03.07.2010, 19:18:03

Grüße Alexander

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

03.07.2010, 19:36:11 via Website

Ein Force Close verursacht grundsätzlich eine entsprechende Fehlermeldung im Logcat.

Diese zu lesen und zu interpretieren führt einen dann zu der Zeile oder dem Bereich in dem der Fehler auftritt. Normalerweise wird dort auch genauestens gesagt um was für einen Fehler es sich handelt, der letzlich zum FC führte.

Aber das hatten wir schon mal ..... :(

lg Voss

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

03.07.2010, 19:48:03 via Website

Hier die Logcat beim fehler:

107-03 17:47:13.128: WARN/KeyCharacterMap(266): No keyboard for id 0
207-03 17:47:13.158: WARN/KeyCharacterMap(266): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
307-03 17:47:17.547: DEBUG/dalvikvm(266): GC freed 3526 objects / 597744 bytes in 180ms
407-03 17:47:18.428: WARN/WindowManager(73): Attempted to add window with non-application token WindowToken{43c49a20 token=null}. Aborting.
507-03 17:47:18.458: DEBUG/AndroidRuntime(266): Shutting down VM
607-03 17:47:18.467: WARN/dalvikvm(266): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
707-03 17:47:18.478: ERROR/AndroidRuntime(266): Uncaught handler: thread main exiting due to uncaught exception
807-03 17:47:18.568: ERROR/AndroidRuntime(266): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
907-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.view.ViewRoot.setView(ViewRoot.java:472)
1007-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
1107-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
1207-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.app.Dialog.show(Dialog.java:239)
1307-03 17:47:18.568: ERROR/AndroidRuntime(266): at de.eTCG.app.eTCG.onOptionsItemSelected(eTCG.java:178)
1407-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.app.Activity.onMenuItemSelected(Activity.java:2170)
1507-03 17:47:18.568: ERROR/AndroidRuntime(266): at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:730)
1607-03 17:47:18.568: ERROR/AndroidRuntime(266): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:139)
1707-03 17:47:18.568: ERROR/AndroidRuntime(266): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
1807-03 17:47:18.568: ERROR/AndroidRuntime(266): at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:525)
1907-03 17:47:18.568: ERROR/AndroidRuntime(266): at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
2007-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.view.View.onTouchEvent(View.java:4179)
2107-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.widget.TextView.onTouchEvent(TextView.java:6541)
2207-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.view.View.dispatchTouchEvent(View.java:3709)
2307-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
2407-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
2507-03 17:47:18.568: ERROR/AndroidRuntime(266): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
2607-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
2707-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.os.Handler.dispatchMessage(Handler.java:99)
2807-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.os.Looper.loop(Looper.java:123)
2907-03 17:47:18.568: ERROR/AndroidRuntime(266): at android.app.ActivityThread.main(ActivityThread.java:4363)
3007-03 17:47:18.568: ERROR/AndroidRuntime(266): at java.lang.reflect.Method.invokeNative(Native Method)
3107-03 17:47:18.568: ERROR/AndroidRuntime(266): at java.lang.reflect.Method.invoke(Method.java:521)
3207-03 17:47:18.568: ERROR/AndroidRuntime(266): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
3307-03 17:47:18.568: ERROR/AndroidRuntime(266): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
3407-03 17:47:18.568: ERROR/AndroidRuntime(266): at dalvik.system.NativeStart.main(Native Method)
3507-03 17:47:18.627: INFO/Process(73): Sending signal. PID: 266 SIG: 3
3607-03 17:47:18.637: INFO/dalvikvm(266): threadid=7: reacting to signal 3
3707-03 17:47:18.837: INFO/dalvikvm(266): Wrote stack trace to '/data/anr/traces.txt'
3807-03 17:47:19.248: INFO/ARMAssembler(73): generated scanline__00000077:03515104_00000000_00000000 [ 33 ipp] (47 ins) at [0x40f970:0x40fa2c] in 11257857 ns
3907-03 17:47:19.287: INFO/ARMAssembler(73): generated scanline__00000177:03515104_00001001_00000000 [ 91 ipp] (114 ins) at [0x40fa30:0x40fbf8] in 3017144 ns

Grüße Alexander

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

03.07.2010, 20:25:12 via Website

Habe es nun folgendermassen gelößt:

res/custom_dialog.xml
1<?xml version="1.0" encoding="UTF-8"?>
2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:id="@+id/layout_root"
4 android:orientation="horizontal"
5 android:layout_width="fill_parent"
6 android:layout_height="fill_parent"
7 android:padding="10dp"
8 >
9 <ImageView android:id="@+id/image"
10 android:layout_width="wrap_content"
11 android:layout_height="fill_parent"
12 android:layout_marginRight="10dp"
13 />
14 <TextView android:id="@+id/text"
15 android:layout_width="wrap_content"
16 android:layout_height="fill_parent"
17 android:textColor="#FFF"
18 />
19</LinearLayout>

Activity.java
1Dialog dialog = new Dialog(this);
2 dialog.setContentView(R.layout.custom_dialog);
3 dialog.setTitle("This is my custom dialog box");
4 dialog.setCancelable(true);
5 TextView text = (TextView) dialog.findViewById(R.id.text);
6 text.setText("Test");
7 ImageView img = (ImageView) dialog.findViewById(R.id.image);
8 img.setImageResource(R.drawable.icon);
9 dialog.show();
10 break;

Grüße Alexander

Antworten