0

I am making an app to explain Android Activity Lifecycle but an I am having problems with android layout. Here is my layout:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    tools:context="br.com.fiap.androidactivitylifecycle.MainActivity" >

    <ImageView
        android:id="@+id/imgAndroidRobot"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="5dp"
        android:layout_marginStart="5dp"
        android:contentDescription="@string/android_robot"
        android:src="@drawable/android" />

    <ImageView
        android:id="@+id/imgActivityCreated"
        android:layout_width="85dp"
        android:layout_height="35dp"
        android:layout_above="@+id/imgAndroidRobot"
        android:layout_marginStart="23dp"
        android:layout_marginBottom="08dp"
        android:layout_toEndOf="@+id/imgAndroidRobot"
        android:contentDescription="@string/activity_created"
        android:src="@drawable/activity_created" />

    <TextView
        android:id="@+id/txtAndroidOnCreate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imgAndroidRobot"
        android:layout_alignStart="@+id/imgAndroidRobot"
        android:text="@string/on_create" />

    <TextView
        android:id="@+id/txtStartedOnResume"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imgActivityStarted"
        android:layout_marginStart="45dp"
        android:layout_marginBottom="17dp"
        android:layout_toEndOf="@+id/txtAndroidOnCreate"
        android:text="@string/on_resume" />

    <TextView
        android:id="@+id/txtCreatedOnStart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/imgActivityCreated"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/txtAndroidOnCreate"
        android:text="@string/on_start" />

    <ImageView
        android:id="@+id/imgActivityStarted"
        android:layout_width="85dp"
        android:layout_height="35dp"
        android:layout_above="@+id/txtCreatedOnStart"
        android:layout_toEndOf="@+id/txtCreatedOnStart"
        android:layout_marginStart="8dp"
        android:contentDescription="@string/activity_started"
        android:src="@drawable/activity_started" />

    <ImageView
        android:id="@+id/imgActivityResumed"
        android:layout_width="85dp"
        android:layout_height="35dp"
        android:layout_above="@+id/txtStartedOnResume"
        android:layout_marginStart="45dp"
        android:layout_toEndOf="@+id/imgActivityCreated"
        android:contentDescription="@string/activity_resumed"
        android:src="@drawable/activity_resumed" />

    <TextView
        android:id="@+id/txtPausedOnResume"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imgActivityStarted"
        android:layout_toEndOf="@+id/imgActivityStarted"
        android:layout_marginBottom="11dp"
        android:text="@string/on_resume" />

    <TextView
        android:id="@+id/txtResumedOnPause"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/imgActivityResumed"
        android:layout_marginStart="17dp"
        android:layout_toEndOf="@+id/txtPausedOnResume"
        android:text="@string/on_pause" />

    <ImageView
        android:id="@+id/imgActivityPaused"
        android:layout_width="85dp"
        android:layout_height="35dp"
        android:layout_above="@+id/txtCreatedOnStart"
        android:layout_toEndOf="@+id/imgActivityResumed"
        android:src="@drawable/activity_paused"
        android:contentDescription="@string/activity_paused" />

    <TextView
        android:id="@+id/txtStoppedOnRestart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/txtAndroidOnCreate"
        android:layout_alignStart="@+id/txtPausedOnResume"
        android:layout_toEndOf="@+id/txtAndroidOnCreate"
        android:text="@string/on_restart" />

    <ImageView
        android:id="@+id/imgActivityDestroyed"
        android:layout_width="55dp"
        android:layout_height="40dp"
        android:layout_alignBottom="@+id/imgAndroidRobot"
        android:layout_alignEnd="@+id/txtStoppedOnDestroy"
        android:layout_alignParentEnd="true"
        android:layout_marginEnd="10dp"
        android:layout_marginBottom="10dp"
        android:contentDescription="@string/activity_destroyed"
        android:src="@drawable/activity_destroyed" />

    <TextView
        android:id="@+id/txtStoppedOnDestroy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imgAndroidRobot"
        android:layout_alignParentEnd="true"
        android:text="@string/on_destroy" />

    <TextView
        android:id="@+id/txtOnRestartOnStart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/imgActivityCreated"
        android:layout_below="@+id/txtCreatedOnStart"
        android:layout_marginStart="@+id/txtCreatedOnStart"
        android:layout_marginLeft="85dp"
        android:layout_marginBottom="4dp"
        android:text="@string/on_start" />

    <TextView
        android:id="@+id/txtPausedOnStop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/txtOnRestartOnStart"
        android:layout_marginStart="@+id/txtPausedOnResume"
        android:layout_toEndOf="@+id/imgActivityPaused"
        android:text="@string/on_stop" />

    <ImageView
        android:id="@+id/imgActivityStopped"
        android:layout_width="85dp"
        android:layout_height="35dp"
        android:layout_alignEnd="@+id/txtPausedOnStop"

        android:layout_alignTop="@+id/imgActivityCreated"
        android:contentDescription="@string/activity_stopped"
        android:src="@drawable/activity_stopped" />

</RelativeLayout>

This layout is very different, each ImageView is a state of an activty lifecycle and each textview is the method name that is performed to achieve that state.

This is the Android Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="br.com.fiap.androidactivitylifecycle"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="18"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppBaseTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" 
            android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

And here is the logcat:

04-04 01:17:37.940: D/dalvikvm(462): GC_FOR_ALLOC freed 121K, 12% free 9614K/10916K, paused 32ms, total 32ms 04-04 01:17:37.940: I/dalvikvm-heap(462): Grow heap (frag case) to 11.314MB for 815124-byte allocation 04-04 01:17:37.965: D/dalvikvm(462): GC_FOR_ALLOC freed 1K, 12% free 10409K/11716K, paused 24ms, total 24ms 04-04 01:17:37.985: D/dalvikvm(462): GC_FOR_ALLOC freed <1K, 12% free 10409K/11716K, paused 19ms, total 19ms 04-04 01:17:37.985: I/dalvikvm-heap(462): Grow heap (frag case) to 14.421MB for 3260448-byte allocation 04-04 01:17:38.015: D/dalvikvm(462): GC_FOR_ALLOC freed <1K, 9% free 13593K/14904K, paused 27ms, total 27ms 04-04 01:17:38.105: D/AndroidRuntime(462): Shutting down VM 04-04 01:17:38.105: W/dalvikvm(462): threadid=1: thread exiting with uncaught exception (group=0x419bf700) 04-04 01:17:38.145: E/AndroidRuntime(462): FATAL EXCEPTION: main 04-04 01:17:38.145: E/AndroidRuntime(462): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.fiap.androidactivitylifecycle/br.com.fiap.androidactivitylifecycle.MainActivity}: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12 04-04 01:17:38.145: E/AndroidRuntime(462): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.app.ActivityThread.access$700(ActivityThread.java:159) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.os.Handler.dispatchMessage(Handler.java:99) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.os.Looper.loop(Looper.java:176) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.app.ActivityThread.main(ActivityThread.java:5419) 04-04 01:17:38.145: E/AndroidRuntime(462): at java.lang.reflect.Method.invokeNative(Native Method) 04-04 01:17:38.145: E/AndroidRuntime(462): at java.lang.reflect.Method.invoke(Method.java:525) 04-04 01:17:38.145: E/AndroidRuntime(462): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) 04-04 01:17:38.145: E/AndroidRuntime(462): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) 04-04 01:17:38.145: E/AndroidRuntime(462): at dalvik.system.NativeStart.main(Native Method) 04-04 01:17:38.145: E/AndroidRuntime(462): Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12 04-04 01:17:38.145: E/AndroidRuntime(462): at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:464) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.view.ViewGroup$MarginLayoutParams.(ViewGroup.java:6259) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.widget.RelativeLayout$LayoutParams.(RelativeLayout.java:1246) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:1083) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:84) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.view.LayoutInflater.rInflate(LayoutInflater.java:768) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 04-04 01:17:38.145: E/AndroidRuntime(462): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:361) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.app.Activity.setContentView(Activity.java:1956) 04-04 01:17:38.145: E/AndroidRuntime(462): at br.com.fiap.androidactivitylifecycle.MainActivity.onCreate(MainActivity.java:11) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.app.Activity.performCreate(Activity.java:5372) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104) 04-04 01:17:38.145: E/AndroidRuntime(462): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257) 04-04 01:17:38.145: E/AndroidRuntime(462): ... 11 more

I hope someone can help me . Thanks You.

random
  • 10,238
  • 8
  • 57
  • 101
Rodrigo Rocha
  • 387
  • 1
  • 4
  • 14

2 Answers2

1

Check your margin start values at below lines

 android:layout_marginStart="@+id/txtCreatedOnStart"
 android:layout_marginStart="@+id/txtPausedOnResume"

Try giving dp values

random
  • 10,238
  • 8
  • 57
  • 101
0

Try this ,

Remove the "+" sign of each widget properties except ids, like ,

android:layout_above="@+id/imgAndroidRobot"

into android:layout_above="@id/imgAndroidRobot"

Heshan Sandeepa
  • 3,388
  • 2
  • 35
  • 45