Autore Topic: Errore TextView  (Letto 266 volte)

Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Errore TextView
« il: 03 Settembre 2014, 15:04:39 CEST »
0
Per modificare a run-time il testo di una TextView dopo findViewById() il metodo setText() va chiamato SUBITO
DOPO findViewById() ? Se no il codice NON funziona?

Questo codice funziona

Codice (Java): [Seleziona]
TextView tv=(TextView) findViewById(R.id.textview1);
tv.setText("Premuto bottone");

Quest'altro codice invece mi da ERRORE

Codice (Java): [Seleziona]
TextView tv=(TextView) findViewById(R.id.textview1);
// altre istruzioni
tv.setText("Premuto bottone");

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:Errore TextView
« Risposta #1 il: 03 Settembre 2014, 15:06:09 CEST »
0
Non deve essere per forza chiamato subito il setText(). Ma... quali sono le "altre istruzioni"?
Che errore ricevi?
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Re:Errore TextView
« Risposta #2 il: 03 Settembre 2014, 15:29:00 CEST »
0
Questo codice mi da ERRORE:

Codice (Java): [Seleziona]
package com.prove.provaproject_18;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.*;
import android.view.*;

public class MainActivity extends ActionBarActivity {

        public void gestisciBottone()
        {
                TextView tv=(TextView) findViewById(R.id.textview1);
               
                // Azione click sul bottone
                Button btnHome=(Button) findViewById(R.id.button1);
            btnHome.setOnClickListener(new View.OnClickListener()
            {  
                @Override  
                public void onClick(View arg0)
                {  
                    // azioni da fare    
                        //Toast.makeText(MainActivity.this, "Premuto bottone 1", Toast.LENGTH_LONG).show();
                        //TextView tv=(TextView) findViewById(R.id.textview1);
                        tv.setText("Premuto bottone 1");

                }  
            });
           
                Button btnHome2=(Button) findViewById(R.id.button2);
            btnHome2.setOnClickListener(new View.OnClickListener()
            {  
                @Override  
                public void onClick(View arg0)
                {  
                    // azioni da fare    
                        //Toast.makeText(MainActivity.this, "Premuto bottone 2", Toast.LENGTH_LONG).show();
                        //TextView tv=(TextView) findViewById(R.id.textview1);
                        tv.setText("Premuto bottone 2");
                }  
            });
        }
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                gestisciBottone();
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
                // Handle action bar item clicks here. The action bar will
                // automatically handle clicks on the Home/Up button, so long
                // as you specify a parent activity in AndroidManifest.xml.
                int id = item.getItemId();
                if (id == R.id.action_settings) {
                        return true;
                }
                return super.onOptionsItemSelected(item);
        }
}

Mentre quest'altro codice FUNZIONA:

Codice (Java): [Seleziona]
package com.prove.provaproject_18;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.*;
import android.view.*;

public class MainActivity extends ActionBarActivity {

        public void gestisciBottone()
        {
                //TextView tv=(TextView) findViewById(R.id.textview1);
               
                // Azione click sul bottone
                Button btnHome=(Button) findViewById(R.id.button1);
            btnHome.setOnClickListener(new View.OnClickListener()
            {  
                @Override  
                public void onClick(View arg0)
                {  
                    // azioni da fare    
                        //Toast.makeText(MainActivity.this, "Premuto bottone 1", Toast.LENGTH_LONG).show();
                        TextView tv=(TextView) findViewById(R.id.textview1);
                        tv.setText("Premuto bottone 1");

                }  
            });
           
                Button btnHome2=(Button) findViewById(R.id.button2);
            btnHome2.setOnClickListener(new View.OnClickListener()
            {  
                @Override  
                public void onClick(View arg0)
                {  
                    // azioni da fare    
                        //Toast.makeText(MainActivity.this, "Premuto bottone 2", Toast.LENGTH_LONG).show();
                        TextView tv=(TextView) findViewById(R.id.textview1);
                        tv.setText("Premuto bottone 2");
                }  
            });
        }
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                gestisciBottone();
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
                // Handle action bar item clicks here. The action bar will
                // automatically handle clicks on the Home/Up button, so long
                // as you specify a parent activity in AndroidManifest.xml.
                int id = item.getItemId();
                if (id == R.id.action_settings) {
                        return true;
                }
                return super.onOptionsItemSelected(item);
        }
}

Offline tonno16

  • Utente storico
  • *****
  • Post: 1227
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Errore TextView
« Risposta #3 il: 03 Settembre 2014, 15:43:47 CEST »
0
Cambia logica. Dichiara un campo TextView tv; all'interno dell activity.

Poi nel create fai: tv = (Textview) find......