Autore Topic: cambiare layout con start activity  (Letto 563 volte)

Offline pnet

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Windows 7
cambiare layout con start activity
« il: 19 Settembre 2011, 00:18:23 CEST »
0
Salve a tutti, sono nuovo e sicuramente il mio problema è già stato trattato con altre parole ma non riesco a trovare una spiegazione all'errore.
Partendo da una demo ho una pagina con un tabhost tipo
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<TabHost android:id="@android:id/tabhost"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
       android:orientation="vertical"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">
        <TabWidget
           android:id="@android:id/tabs"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content" />
        <FrameLayout
           android:id="@android:id/tabcontent"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent">

Ho un evento che fa partire un altra activity
Codice (Java): [Seleziona]
Intent i = new Intent(Intent.ACTION_VIEW);
                        i.setClass(this, settings_project.class);
                        startActivity(i);

la quale con onCreate richiama un layout nuovo
Codice (Java): [Seleziona]
public class settings_project extends TabActivity{
        @Override
        protected void onCreate(Bundle savedInstanceState) {
               
                super.onCreate(savedInstanceState);
                try {
                        setContentView(R.layout.settings_layout);
                } catch (Exception e) {
                        Toast.makeText(getBaseContext(),e.getMessage(),Toast.LENGTH_LONG).show();
                }
        }
}

Però mi esce sempre il Toast dicendomi "your content must have a tabhost whose id attribute is 'android.r.id.tabhost'" che in questo layout non c'è...
Mi mancano alcune basi, me ne rendo conto, c'è una soluzione rapida intanto per risolvere questo problema?
Grazie per la pazienza.

Offline IacopoDeeNosee

  • Utente junior
  • **
  • Post: 128
  • Respect: +33
    • Google+
    • iacopodeenosee
    • Mostra profilo
    • visualhunter
  • Dispositivo Android:
    Samsung Nexus S - GT-I9023
  • Play Store ID:
    IacopoDeeNosee
  • Sistema operativo:
    Arch linux x86_64
Re:cambiare layout con start activity
« Risposta #1 il: 19 Settembre 2011, 09:17:50 CEST »
0
Però mi esce sempre il Toast dicendomi "your content must have a tabhost whose id attribute is 'android.r.id.tabhost'" che in questo layout non c'è...
se la tua nuova classe estende TabActivity per forza di cose nel layout devi avere un elemento con id=android.r.id.tabhost,in questo caso a te serve una normale activity perciò la tua classe deve stendere solo Activity.
Codice (Java): [Seleziona]
...
public class settings_project extends Activity{
...
Citazione
Mi mancano alcune basi, me ne rendo conto, c'è una soluzione rapida intanto per risolvere questo problema?
la soluzione migliore è accompagnare le prime fasi di sviluppo con un libro che ti aiuta a inquadrare il sistema android e i suoi meccanismi.8y3

Offline pnet

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Windows 7
Re:cambiare layout con start activity
« Risposta #2 il: 19 Settembre 2011, 21:55:51 CEST »
0
IacopoDeeNosee, grazie del prezioso e tempestivo aiuto, quello che mi serviva fare con urgenza l'ho fatto, ora comincio seriamente a studiare documentazione.
Alla fine è tempo solo investito! ho già perso 2 serate per aver sbagliato approccio al mondo java... è veramente vastissimo, se non segui una strada precisa ho visto che ti perdi in fretta.
Grazie di nuovo.