Autore Topic: aggiungere view a run time  (Letto 1010 volte)

Offline esoni

  • Utente junior
  • **
  • Post: 102
  • Respect: 0
    • Mostra profilo
aggiungere view a run time
« il: 30 Agosto 2012, 17:35:25 CEST »
0
ciao ragazzi stavo cercando di capire come posso aggiungere una view a runtime.
ad esempio ho un tasto nella mia applicazione di prova, se l utente lo preme voglio inserire una textview nel layout.
ecco il codice
Codice (Java): [Seleziona]
package com.example.testadd;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

//metodo lanciato al click del button..deve inserire nel layout  a runtime la textview
public void perform(View v){
        Log.d("LOL","CLICK");
        //riferimento al layout
        RelativeLayout lay=(RelativeLayout)findViewById(R.layout.activity_main);
        RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams (RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT);
        TextView tv=new TextView(this);
        tv.setText("ciao");
        tv.setLayoutParams(lp);
        //aggiungo la textview al layout
        try{
        lay.addView(tv);//<---causa eccezzione
        }catch(Exception e){
                Log.d("LOL",e.toString());
        }
}
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

   
}


sbaglio qualcosa il programma termina causa eccezzione HELP ME

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7

Offline esoni

  • Utente junior
  • **
  • Post: 102
  • Respect: 0
    • Mostra profilo
Re:aggiungere view a run time
« Risposta #2 il: 30 Agosto 2012, 18:49:13 CEST »
0
Null pointer exception causata da lay.addView(tv);

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:aggiungere view a run time
« Risposta #3 il: 30 Agosto 2012, 19:37:20 CEST »
0
lay è null...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline esoni

  • Utente junior
  • **
  • Post: 102
  • Respect: 0
    • Mostra profilo
Re:aggiungere view a run time
« Risposta #4 il: 30 Agosto 2012, 19:51:47 CEST »
0
grazie mille !
prendevo male il riferimento a lay!
secondo problema, se l applicazione viene riavviata(cambio di orientamento esempio) viene ricaricato il layout di default ovvero quello senza text view inserita. C è un modo per salvare il layout corrente e farlo ripartire qualora viene riavviata l applicazione ?

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:aggiungere view a run time
« Risposta #5 il: 31 Agosto 2012, 01:11:05 CEST »
0
grazie mille !
prendevo male il riferimento a lay!
secondo problema, se l applicazione viene riavviata(cambio di orientamento esempio) viene ricaricato il layout di default ovvero quello senza text view inserita. C è un modo per salvare il layout corrente e farlo ripartire qualora viene riavviata l applicazione ?
ci sono tanti post a riguardo nel forum, nella sezione tutorial trovi sicuramente la risposta ai tuoi problemi
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline esoni

  • Utente junior
  • **
  • Post: 102
  • Respect: 0
    • Mostra profilo
Re:aggiungere view a run time
« Risposta #6 il: 31 Agosto 2012, 09:07:38 CEST »
0
se puoi dirmi qualcosa d piu , magari linkando anche qualche guida te ne sarei grato :)