Autore Topic: Errore  (Letto 346 volte)

Offline lucabasket08

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4 mini
  • Sistema operativo:
    Windows 10
Errore
« il: 08 Giugno 2016, 23:37:22 CEST »
0
Codice (Java): [Seleziona]
public void addPanel(View v){
    EditText editText[] = new EditText[4];
    editText[0] = (EditText) findViewById(R.id.Input_Text_1);
    editText[1] = (EditText) findViewById(R.id.Input_Text_2);
    editText[2] = (EditText) findViewById(R.id.Input_Text_3);
    editText[3] = (EditText) findViewById(R.id.Input_Text_4);

    LinearLayout layoutSuperiore = (LinearLayout) findViewById(R.id.Layout_Superiore);

    TextView textView = (TextView) findViewById(R.id.Text_Panel);
    textView.setText(editText[0].getText() + "  " + editText[1].getText() + "  " + editText[2].getText() + "  " + editText[3].getText());

    ViewGroup panel = (ViewGroup) LayoutInflater.from(this).inflate(R.layout.panel_layout, layoutSuperiore, false);

    layoutSuperiore.addView(panel);
}

Sapete dirmi perchè mi da errore sulla riga del setText

L'errore è il seguente:

java.lang.IllegalStateException: Could not execute method for android:onClick
                                                                                   at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
                                                                                   at android.view.View.performClick(View.java:4640)
                                                                                   at android.view.View$PerformClick.run(View.java:19425)
                                                                                   at android.os.Handler.handleCallback(Handler.java:733)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                   at android.os.Looper.loop(Looper.java:146)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5593)
                                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:515)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
                                                                                   at dalvik.system.NativeStart.main(Native Method)
                                                                                Caused by: java.lang.reflect.InvocationTargetException
                                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:515)
                                                                                   at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
                                                                                   at android.view.View.performClick(View.java:4640)
                                                                                   at android.view.View$PerformClick.run(View.java:19425)
                                                                                   at android.os.Handler.handleCallback(Handler.java:733)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                   at android.os.Looper.loop(Looper.java:146)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5593)
                                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:515)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
                                                                                   at dalvik.system.NativeStart.main(Native Method)
                                                                                Caused by: java.lang.NullPointerException
                                                                                   at com.lucafalasca.mastermind_20.MainActivity.addPanel(MainActivity.java:30)
                                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:515)
                                                                                   at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
                                                                                   at android.view.View.performClick(View.java:4640)
                                                                                   at android.view.View$PerformClick.run(View.java:19425)
                                                                                   at android.os.Handler.handleCallback(Handler.java:733)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                   at android.os.Looper.loop(Looper.java:146)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5593)
                                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:515)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
                                                                                   at dalvik.system.NativeStart.main(Native Method)

Offline capitancooker

  • Utente junior
  • **
  • Post: 56
  • Marco
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Asus Zenpad S 8.0
  • Sistema operativo:
    Mac OSX El Capitan
Re:Errore
« Risposta #1 il: 09 Giugno 2016, 08:36:58 CEST »
0
Prova così:
Codice (Java): [Seleziona]
textView.setText(editText[0].getText().toString() + "  " + editText[1].getText().toString() + "  " + editText[2].getText().toString() + "  " + editText[3].getText().toString());
Se sbaglio, correggetemi.

Offline lucabasket08

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4 mini
  • Sistema operativo:
    Windows 10
Re:Errore
« Risposta #2 il: 09 Giugno 2016, 11:16:35 CEST »
0
no, non cambia nulla.
Non credo però che sia un errore derivante dal contenuto, perchè anche se provo con textView.setText("ciao"); l'errore lo da lo stesso

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 583
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Errore
« Risposta #3 il: 09 Giugno 2016, 12:14:00 CEST »
0
Cambia

Codice (Java): [Seleziona]
    TextView textView = (TextView) findViewById(R.id.Text_Panel);
    textView.setText(editText[0].getText() + "  " + editText[1].getText() + "  " + editText[2].getText() + "  " + editText[3].getText());

    ViewGroup panel = (ViewGroup) LayoutInflater.from(this).inflate(R.layout.panel_layout, layoutSuperiore, false);

in

Codice (Java): [Seleziona]
    ViewGroup panel = (ViewGroup) LayoutInflater.from(this).inflate(R.layout.panel_layout, layoutSuperiore, false);

    TextView textView = (TextView) panel.findViewById(R.id.Text_Panel); //findViewById va invocato su panel
    textView.setText(editText[0].getText() + "  " + editText[1].getText() + "  " + editText[2].getText() + "  " + editText[3].getText());

Il textview che stai cercando esiste solo nel layout di cui hai appena fatto l'inflate.
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline xixietto

Re:Errore
« Risposta #4 il: 09 Giugno 2016, 14:13:12 CEST »
0
Hai dichiarato la textview?;)

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 583
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Errore
« Risposta #5 il: 09 Giugno 2016, 14:17:58 CEST »
0
@xixietto: Il codice è basato su una mia precedente risposta: LinearLayout - Android Developers Italia

Il problema è che la TextView è definita all'interno di "panel" (panel_layout.xml) e non nell'activity, per cui il findVeiwById va invocato su "panel".
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline lucabasket08

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4 mini
  • Sistema operativo:
    Windows 10
Re:Errore
« Risposta #6 il: 09 Giugno 2016, 15:51:39 CEST »
0
In realtà avevo già provato a fare come hai detto e purtroppo non funziona neanche così.
Però non so perchè ha cominciato a darmi errore sulla riga 30 (che è vuota) a prescindere da dove è posizionato il codice(per quanto riguarda questo ho già provato a riavviare sia il pc che il telefono).

Comunque sia penso che il problema sia uno di questi due (o entrambi) che però non sono riuscito a risolvere.
« Ultima modifica: 09 Giugno 2016, 15:54:14 CEST da lucabasket08 »

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 583
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Errore
« Risposta #7 il: 09 Giugno 2016, 15:58:22 CEST »
0
1- Se hai errore su una riga vuota probabilmente devi fare rebuild.

2- Prova a cambiare
Codice (Java): [Seleziona]
textView.setText(editText[0].getText() + "  " + editText[1].getText() + "  " + editText[2].getText() + "  " + editText[3].getText());
in

Codice (Java): [Seleziona]
String txt = editText[0].getText() + "  " + editText[1].getText() + "  " + editText[2].getText() + "  " + editText[3].getText();
textView.setText(txt);

In modo da capire se è textView ad essere null o uno degli editText[]


3- Allega panel_layout.xml così controlliamo se è corretto.
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline lucabasket08

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4 mini
  • Sistema operativo:
    Windows 10
Re:Errore
« Risposta #8 il: 09 Giugno 2016, 16:12:10 CEST »
0
Allora dopo il rebuild ha smesso di dare errore e non crasha più quando premo il pulsante. Però non disegna comunque il

Errore della seconda immagine di prima è rimasto mentre quello derivante dal setText se ne è andato, penso che il panel sia null.

Questo è il panel_layout.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">

    <TextView
       android:layout_width="wrap_content"
       android:layout_height="match_parent"
       android:textSize="20sp"
       android:id="@+id/Text_Panel"/>

</RelativeLayout>


Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 583
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Errore
« Risposta #9 il: 09 Giugno 2016, 16:30:09 CEST »
+1
Se panel fosse null la chiamata panel.findViewById(R.id.Text_Panel) andrebbe in errore.

Prova a cambiare layout:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="wrap_content">

    <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="20sp"
      android:id="@+id/Text_Panel"/>

</RelativeLayout>
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline lucabasket08

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4 mini
  • Sistema operativo:
    Windows 10
Re:Errore
« Risposta #10 il: 09 Giugno 2016, 16:41:53 CEST »
0
Ok ora funziona, grazie mille.

Però se ricordi il vecchio post dovevo crearlo dal basso verso l'alto e in questo modo lo crea solo in alto ignorando il gravity bottom.

Codice (XML): [Seleziona]
<LinearLayout
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:gravity="bottom"
   android:orientation="vertical"
   android:layout_gravity="bottom"
   android:background="#bc5252"
   android:layout_alignParentTop="true"
   android:layout_above="@+id/Layout_Inferiore"
   android:id="@+id/Layout_Superiore">

</
Ho provato a fare
android:layout_gravity="bottom"
android:layout_alignParentBottom="true"
sul panel_ layout ma niente

E un altro problema è che lo fa una volta sola, quindi se ripremo il pulsante non fa niente.
Scusami per tutte queste domande T_T
« Ultima modifica: 09 Giugno 2016, 16:54:35 CEST da lucabasket08 »

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 583
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Errore
« Risposta #11 il: 09 Giugno 2016, 17:04:23 CEST »
+1
Non vedo altri errori.

Ho provato il layout e le TextView appaiono correttamente in fondo.

Il codice dovrebbe funzionare anche se eseguito più volte.

Non so come aiutarti oltre.
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline lucabasket08

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4 mini
  • Sistema operativo:
    Windows 10
Re:Errore
« Risposta #12 il: 09 Giugno 2016, 17:35:49 CEST »
0
Ok, grazie lo stesso di tutto :D