Autore Topic: Dichiarare TextView a inizio classe  (Letto 344 volte)

Offline Damien

  • Utente junior
  • **
  • Post: 63
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lenovo ZUK Z1
  • Sistema operativo:
    Windows 10
Dichiarare TextView a inizio classe
« il: 07 Luglio 2014, 15:13:58 CEST »
0
Buongiorno ragazzi, sono nuovo del mondo developer android, faccio una domanda che può sembrare una domanda stupida ma è una cosa che non capisco,... Perchè se dichiaro una textview a inizio classe, perchè magari voglio modificarla ovunque ed evitare di continuarla a dichiarare nei vari listener, me lo fa fare ed eclipse non mi dà nessun errore, ma perchè l'app va in crash?
Se ti sono stato d'aiuto premi il tasto THANKS :)

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Dichiarare TextView a inizio classe
« Risposta #1 il: 07 Luglio 2014, 15:35:41 CEST »
0
Posta il codice e sarai aiutato  :)
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline Damien

  • Utente junior
  • **
  • Post: 63
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lenovo ZUK Z1
  • Sistema operativo:
    Windows 10
Re:Dichiarare TextView a inizio classe
« Risposta #2 il: 07 Luglio 2014, 17:39:24 CEST »
0
Ok ti faccio un esempio, prova a compilare questo

Codice: [Seleziona]
package com.example.example;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends Activity {
        TextView TV = (TextView) findViewById(R.id.textView1);
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
        }
        void onClickBtn1(View v) {
                TV.setText("TextView state 1");
        }
        void onClickBtn2(View v) {
                TV.setText("TextView srare 2");
        }
}

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"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:onClick="onClickBtn1"
        android:text="Button_1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button1"
        android:onClick="onClickBtn2"
        android:text="Button_2" />

</RelativeLayout>
Se ti sono stato d'aiuto premi il tasto THANKS :)

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Dichiarare TextView a inizio classe
« Risposta #3 il: 07 Luglio 2014, 17:47:00 CEST »
+2
Così facendo cerchi di inizializzare la TextView quando l'activity non è stata ancora visualizzata. Puoi dichiarare la TextView all'inizio della classe ma devi comunque inizializzarla dopo aver chiamato setContentView:
Codice (Java): [Seleziona]
public class MainActivity extends Activity {
        TextView TV;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                TV=(TextView) findViewById(R.id.textView1);
        }
        //...
}
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline Damien

  • Utente junior
  • **
  • Post: 63
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lenovo ZUK Z1
  • Sistema operativo:
    Windows 10
Re:Dichiarare TextView a inizio classe
« Risposta #4 il: 07 Luglio 2014, 18:19:09 CEST »
0
Ma Dio! Che stupidata, grazie mille  :-) ;-)
Se ti sono stato d'aiuto premi il tasto THANKS :)