Autore Topic: cambiando colore a LinearLayout - FATAL EXCEPTION  (Letto 745 volte)

Offline esnho

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
cambiando colore a LinearLayout - FATAL EXCEPTION
« il: 20 Settembre 2013, 03:54:52 CEST »
0
Un saluto al forum,
sto muovendo i primi passi nello sviluppo di App.
Volevo far cambiare il colore allo sfondo di un LinearLayout alla pressione di un bottone personalizzato, alla pressione del bottone ottengo una FATAL EXCEPTION.
Mi sono accorto che ottengo l'errore già al solo tentativo di cambiare il colore al LinearLayout, vi invio il layout e il codice allegando il LogCat.

Il colore che provo a settare è uno standard ma in realtà vorrei settarci un colore personalizzato che tengo in colors.xml, a fianco c'è il codice commentato per recuperare quel colore.

Codice:
Codice: [Seleziona]
package esnho.quizbuttons;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.LinearLayout;

public class QuizButtons extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.quiz_buttons);
               
                LinearLayout leftBG = (LinearLayout) findViewById(R.id.leftBg);
                leftBG.setBackgroundColor(Color.CYAN); //getResources().getColor(R.color.selected_color)
        }

}

Layout:
Codice: [Seleziona]
<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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".QuizButtons" >
        <LinearLayout
                android:id="@+id/linLay"
                android:baselineAligned="false"
            android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
            android:background="#000000">
            <RelativeLayout
                    android:id="@+id/leftBg"
                        android:layout_width="fill_parent"
                        android:layout_height="match_parent"
                        android:layout_weight = "1"
                    android:background="#00ff00"
                ></RelativeLayout>
            <RelativeLayout
                    android:id="@+id/rightBg"
                        android:layout_width="fill_parent"
                        android:layout_height="match_parent"
                        android:layout_weight = "1"
                    android:background="#0000ff"
                ></RelativeLayout>
        </LinearLayout>
    <TextView
                   android:id="@+id/left_score"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    <esnho.quizbuttons.Bottone
            android:id="@+id/left_button"
            android:layout_gravity="left"
        android:layout_alignLeft="@id/left_score"
            android:layout_centerVertical="true"
            android:layout_width="150dp"
            android:layout_height="150dp"
         />
   
    <TextView
                   android:id="@+id/right_score"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:text="@string/hello_world" />
    <esnho.quizbuttons.Bottone
        android:id="@+id/right_button"
        android:layout_gravity="right"
        android:layout_alignRight="@id/right_score"
            android:layout_centerVertical="true"
                android:layout_width="150dp"
                android:layout_height="150dp"
         />

</RelativeLayout>

Grazie mille dell'attenzione.

Ciao

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:cambiando colore a LinearLayout - FATAL EXCEPTION
« Risposta #1 il: 20 Settembre 2013, 08:14:55 CEST »
0
Nel LogCat non ci sono errori, solo una riga marcata D (debug).

Meglio se riprovi e lo posti direttamente nel forum usando il marcatore per il codice, è anche più comodo da leggere.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline esnho

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:cambiando colore a LinearLayout - FATAL EXCEPTION
« Risposta #2 il: 20 Settembre 2013, 10:39:40 CEST »
0
Ok, si vede che avevo sbagliato a salvare il LogCat, comunque l'errore si ripresenta...

Reinserisco i codici, scusate mi sono accorto solo ora che c'è anche il tag per il codice java e xml.

Codice (Java): [Seleziona]
package esnho.quizbuttons;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.LinearLayout;

public class QuizButtons extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.quiz_buttons);
               
                LinearLayout leftBG = (LinearLayout) findViewById(R.id.leftBg);
                leftBG.setBackgroundColor(Color.CYAN);//getResources().getColor(R.color.selected_color)
        }

}

Codice (XML): [Seleziona]
<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:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   tools:context=".QuizButtons" >

    <LinearLayout
       android:id="@+id/linLay"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:background="#000000"
       android:baselineAligned="false"
       android:orientation="horizontal" >

        <RelativeLayout
           android:id="@+id/leftBg"
           android:layout_width="fill_parent"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:background="#00ff00" >
        </RelativeLayout>

        <RelativeLayout
           android:id="@+id/rightBg"
           android:layout_width="fill_parent"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:background="#0000ff" >
        </RelativeLayout>
    </LinearLayout>

    <TextView
       android:id="@+id/left_score"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/hello_world" />

    <esnho.quizbuttons.Bottone
       android:id="@+id/left_button"
       android:layout_width="150dp"
       android:layout_height="150dp"
       android:layout_alignLeft="@id/left_score"
       android:layout_centerVertical="true"
       android:layout_gravity="left" />

    <TextView
       android:id="@+id/right_score"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:gravity="right"
       android:text="@string/hello_world" />

    <esnho.quizbuttons.Bottone
       android:id="@+id/right_button"
       android:layout_width="150dp"
       android:layout_height="150dp"
       android:layout_alignRight="@id/right_score"
       android:layout_centerVertical="true"
       android:layout_gravity="right" />

</RelativeLayout>

Codice: [Seleziona]
09-20 10:34:25.057: D/dalvikvm(30681): GC_EXTERNAL_ALLOC freed 50K, 50% free 2720K/5379K, external 0K/0K, paused 188ms
09-20 10:34:25.207: D/AndroidRuntime(30681): Shutting down VM
09-20 10:34:25.207: W/dalvikvm(30681): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
09-20 10:34:25.237: E/AndroidRuntime(30681): FATAL EXCEPTION: main
09-20 10:34:25.237: E/AndroidRuntime(30681): java.lang.RuntimeException: Unable to start activity ComponentInfo{esnho.quizbuttons/esnho.quizbuttons.QuizButtons}: java.lang.ClassCastException: android.widget.RelativeLayout
09-20 10:34:25.237: E/AndroidRuntime(30681):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at android.os.Handler.dispatchMessage(Handler.java:99)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at android.os.Looper.loop(Looper.java:130)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at android.app.ActivityThread.main(ActivityThread.java:3691)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at java.lang.reflect.Method.invokeNative(Native Method)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at java.lang.reflect.Method.invoke(Method.java:507)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at dalvik.system.NativeStart.main(Native Method)
09-20 10:34:25.237: E/AndroidRuntime(30681): Caused by: java.lang.ClassCastException: android.widget.RelativeLayout
09-20 10:34:25.237: E/AndroidRuntime(30681):         at esnho.quizbuttons.QuizButtons.onCreate(QuizButtons.java:15)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-20 10:34:25.237: E/AndroidRuntime(30681):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
09-20 10:34:25.237: E/AndroidRuntime(30681):         ... 11 more

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +153
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:cambiando colore a LinearLayout - FATAL EXCEPTION
« Risposta #3 il: 20 Settembre 2013, 10:57:33 CEST »
0
Stai facendo un cast errato nel tuo codice.
Tu nel onCreate usi un LinearLayout.

Caused by: java.lang.ClassCastException: android.widget.RelativeLayout
09-20 10:34:25.237: E/AndroidRuntime(30681):         at esnho.quizbuttons.QuizButtons.onCreate(QuizButtons.java:15)

Offline esnho

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:cambiando colore a LinearLayout - FATAL EXCEPTION
« Risposta #4 il: 20 Settembre 2013, 11:30:20 CEST »
0
Ok, quindi?  O:-)

Ho provato a fare il cast anche dopo, su start e resume, non funziona lo stesso, quindi non capisco qualcosa alla base di tutto, puoi essere più chiaro per favore?  :-)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:cambiando colore a LinearLayout - FATAL EXCEPTION
« Risposta #5 il: 20 Settembre 2013, 11:47:29 CEST »
0
GabMarioPower ti stava dicendo che tu hai un RelativeLayout, ma lo vuoi "castare" ad un LinearLayout.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline esnho

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:cambiando colore a LinearLayout - FATAL EXCEPTION
« Risposta #6 il: 20 Settembre 2013, 11:52:11 CEST »
0
sono uno scemo  :-X
proprio un brutto primo topic

grazie a tutti, soprattutto per la pazienza
« Ultima modifica: 20 Settembre 2013, 11:53:46 CEST da esnho »