Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    12
    Giusto per iniziare...!
    io sono nuovo sia del forum che della programmazione in java.
    Qualche minima cosa l'ho imparata per esigenze lavorative. Ora però mi sono "intrippato" con la guida qui di HTML.IT lezione 21: http://www.html.it/pag/19516/gestion...mo-con-i-form/

    Ho provato a seguire la lezione passo passo ma mi da un errore "R cannot be resolved to a variable" (sto parlando del codice che si vede in eclipse)...

    A mio avviso mi manca qualche cosa in "res" (non il form o il form.java xè li ho già messi) oppure ho chiamato in maniera errata qualche file...

    Qualcuno mi può aiutare??? o girarmi il "pacchetto" del progetto funzionante e completo che me lo importo in eclipse e vedo dove sbaglio?

    Grazie in anticipo,
    Davide

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    12
    Per la mia modestissima esperienza in fatto di programmazione, suggerisco le guide on-line.
    E suggerisco di provare a "smontare" codice già fatto giusto per capire come funziona...
    Per le mie esigenze (semplificando, diciamo fare calcoli matematici con java) ho fatto così e con un po' di pazienza ed impegno sono riuscito a fare quello che mi serviva.
    Ora sono alle prese con android e mi sto comportando allo stesso modo: leggo guide online e provo a seguire gli esempi che propongono... Come avrete letto sopra, ora mi sono bloccato con un esempio qui di html.it. Se avete suggerimenti!
    Mi segnala un errore alle righe che ho evidenziato:

    codice:
    package html.it.examples.com;
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    public class HelloLinear extends Activity implements OnClickListener {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    }
            final Button button = (Button) findViewById(R.id.form_button); 
    
            button.setOnClickListener(this);
        }
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch ( v.getId() ) {
                case R.id.form_button:
                final EditText edit_name = (EditText)findViewById(R.id.edit_name);
                final EditText edit_lastname = (EditText)findViewById(R.id.edit_lastname); 
                Bundle bundle = new Bundle();
                bundle.putString("name", edit_name.getText().toString());
                bundle.putString("lastname", edit_lastname.getText().toString());
                Intent form_intent = new Intent(getApplicationContext(), Form.class);
                form_intent.putExtras(bundle);
                startActivity(form_intent);
                break;
            }
        }

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    3
    che errore ti dice?
    Hai creato e dichiarato correttamente i due Edit Text ed il Button nell' activity_main.xml?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    12
    Ciao a tutti, scusate il ritardo ma ho fatto il ponte del 25 aprile!!!
    Allora, cerco di spiegare quello che ho fatto.
    In Eclipse ho creato un nuovo progetto Android e l'ho chiamato come segue:

    application name: HelloLinearApp
    package: html.it.examples.com
    project name: HelloLinear
    activity name (che è la public class): HelloLinear
    Layout name: main.xml

    Poi ho creato altri 2 file:
    form.xml (sotto layout)
    Form.java (dentro il package)

    E ho modificato:
    - AndroidManifest.xml
    - strings.xml

    In fondo a questo messaggio incollo il codice, che è lo stesso che c'è sul sito di html.it.

    Eclipse mi segna errori nei file hellolinear.java ed in form.java

    Allora in hellolinear alla riga:
    codice:
    final Button button = (Button) findViewById(R.id.form_button);
    mi sottolinea "form_button" (e poco sotto form_button, edit_name, edit_lastname) e cliccando sulla crocetta rossa mi da in una finestra:
    codice:
    ...
    public static final class id {
    public static final int action_settings=0x7f080000;
    public static int form_button;
    }
    ...
    Stessa cosa mi è segnalata alle righe:
    codice:
                case R.id.form_button:
                final EditText edit_name = (EditText)findViewById(R.id.edit_name);
                final EditText edit_lastname = (EditText)findViewById(R.id.edit_lastname);
    Passiamo al file form.java. L'errore l'ho alle seguenti righe:
    codice:
            setContentView(R.layout.form);
            final TextView text_name = (TextView) findViewById(R.id.view_name);
            final TextView text_lastname = (TextView) findViewById(R.id.view_lastname);
    quello che appare nella solita finestra cliccando sull'errore (form, view_name, view_lastname) è:
    codice:
    package html.it.examples.com;
    
    import android.view.View;
    public final class R {
    ...
    public static final class layout {
    public static final int main=0x7f030000;
    public static View form;
    }
    ...
    Per concludere incollo la descrizione degli errori che mi da eclipse (i problems, come li chiama lui!), sono 7.
    codice:
    Description	Resource	Path	Location	Type
    edit_lastname cannot be resolved or is not a field	HelloLinear.java	/HelloLinear/src/html/it/examples/com	line 24	Java Problem
    
    Description	Resource	Path	Location	Type
    edit_name cannot be resolved or is not a field	HelloLinear.java	/HelloLinear/src/html/it/examples/com	line 23	Java Problem
    
    Description	Resource	Path	Location	Type
    form cannot be resolved or is not a field	Form.java	/HelloLinear/src/html/it/examples/com	line 10	Java Problem
    
    Description	Resource	Path	Location	Type
    form_button cannot be resolved or is not a field	HelloLinear.java	/HelloLinear/src/html/it/examples/com	line 15	Java Problem
    
    Description	Resource	Path	Location	Type
    form_button cannot be resolved or is not a field	HelloLinear.java	/HelloLinear/src/html/it/examples/com	line 22	Java Problem
    
    Description	Resource	Path	Location	Type
    view_lastname cannot be resolved or is not a field	Form.java	/HelloLinear/src/html/it/examples/com	line 12	Java Problem
    
    Description	Resource	Path	Location	Type
    view_name cannot be resolved or is not a field	Form.java	/HelloLinear/src/html/it/examples/com	line 11	Java Problem
    Grazie in anticipo a tutti!

    MAIN
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/label_form_name"
        android:layout_marginTop="15dip"
        android:layout_marginBottom="10dip"
        />
        <TextView 
        android:id="@+id/view_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
        <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/label_form_lastname"
        android:layout_marginTop="15dip"
        android:layout_marginBottom="10dip"
        />
        <TextView 
        android:id="@+id/view_lastname"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
     
    </LinearLayout>
    ELLOLINEAR.JAVA
    codice:
    package html.it.examples.com;
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    public class HelloLinear extends Activity implements OnClickListener {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            final Button button = (Button) findViewById(R.id.form_button);
            button.setOnClickListener(this);
        }
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch ( v.getId() ) {
                case R.id.form_button:
                final EditText edit_name = (EditText)findViewById(R.id.edit_name);
                final EditText edit_lastname = (EditText)findViewById(R.id.edit_lastname);
                Bundle bundle = new Bundle();
                bundle.putString("name", edit_name.getText().toString());
                bundle.putString("lastname", edit_lastname.getText().toString());
                Intent form_intent = new Intent(getApplicationContext(), Form.class);
                form_intent.putExtras(bundle);
                startActivity(form_intent);
                break;
            }
        }
    }
    STRINGS.XML
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="app_name">HelloLinearApp</string>
        <string name="form_intro">Invia il form premendo sul pulsante di invio.</string>
        <string name="name">Inserisci il tuo nome</string>
        <string name="lastname">Inserisci il tuo cognome</string>
        <string name="form_button_label">Invia</string>
        <string name="label_form_name">Nome Inserito:</string>
        <string name="label_form_lastname">Cognome Inserito:</string>
    </resources>
    FORM.JAVA
    codice:
    package html.it.examples.com;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TextView;
    public class Form extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.form);
            final TextView text_name = (TextView) findViewById(R.id.view_name);
            final TextView text_lastname = (TextView) findViewById(R.id.view_lastname);
            Bundle bundle = this.getIntent().getExtras();
            text_name.setText(bundle.getString("name"));
            text_lastname.setText(bundle.getString("lastname"));
        }
    }
    public class Form {
    
    }
    FORM.XML
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/label_form_name"
        android:layout_marginTop="15dip"
        android:layout_marginBottom="10dip"
        />
        <TextView 
        android:id="@+id/view_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
        <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/label_form_lastname"
        android:layout_marginTop="15dip"
        android:layout_marginBottom="10dip"
        />
        <TextView 
        android:id="@+id/view_lastname"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
     
    </LinearLayout>
    HELLOLINEAR MANIFEST
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="html.it.examples.com"
          android:versionCode="1"
          android:versionName="1.0">
        <uses-sdk android:minSdkVersion="7" />
     
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".HelloLinear"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
            <activity android:name=".Form"
                      android:label="@string/app_name">
                <intent-filter/>
            </activity>
     
        </application>
    </manifest>

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    12
    Ciao a tutti,
    forse le mie domande sopra sono banali, ma nessuno ha qualche idea?!

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    3
    ti dà questi errori perchè nel File R.java, nella classe id, non esistono quei campi (R.id.form_button e gli altri). Puoi risolvere il problema andando a scrivere il seguente codice nel file R.java (NB il file R.java è autogenerato e non andrebbe mai modificato...ma dato che questa è una prova... secondo me dev'esserci stato un pò di caos nella costruzione e dichiarazione degli elementi)

    codice:
        public static final class id {
            public static final int action_settings=0x7f080000;
    		public static int edit_lastname;
    		public static int form_button;
    		public static int edit_name;
    		public static int view_name;
    		public static int view_lastname;
    
        }

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    12
    Ci sono quasi!!!!

    Risolto il problema con il file R.java ora mi segna errore alle seguenti linee di HelloLinear.java (del file "principale!, passatemi il termine!!!)

    codice:
    switch ( v.getId() ) {
       case R.id.form_button:
          final EditText edit_name = (EditText)findViewById(R.id.edit_name);
          final EditText edit_lastname = (EditText)findViewById(R.id.edit_lastname);
    Il messaggio che appare è:

    "As of ADT 14, resource fields cannot be used as switch cases.
    Invoke this fix to get more information."

    e nella console:
    "case expressions must be constant expressions"

    Ho guardato i suggerimenti ed in pratica dicono di sostituire lo switch con if-else....

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    @stem81
    Per sta volta sposto io tutti i messaggi in una nuova discussione.
    Per il futuro, evita di attaccarti ad una discussione per parlare d'altro (la discussione parlava di come iniziare a programmare per Android, quali libri e risorse trovare, non di problemi relativi al codice tuo).

    E, per favore, quando posti del codice, usa gli appositi tag CODE:

    [CODE]
    ... // il tuo codice
    [/CODE]

    Tutto questo è scritto anche nel Regolamento interno.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.