Autore Topic: errore in un intent  (Letto 507 volte)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 323
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
errore in un intent
« il: 21 Ottobre 2014, 17:10:07 CEST »
0
ragazzi scrivendo il questo codice :

Codice (Java): [Seleziona]
listView.setOnItemClickListener(new OnItemClickListener(){
       
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int pos,
                                long id) {
                        // TODO Auto-generated method stub
                        if(pos==3){
                                Intent i=new Intent(this,eventi.class);
                                startActivity(i);
                        }
                       
                }
    });
       

nella riga "Intent i=new Intent(this,eventi.class);" mi da come errore "The constructor Intent(new AdapterView.OnItemClickListener(){}, Class<eventi>) is undefined"

non capisco questo errore.... qualcuno me lo può spiegare?

grazie mille in anticipo!!

Offline tonno16

  • Utente storico
  • *****
  • Post: 1231
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:errore in un intent
« Risposta #1 il: 21 Ottobre 2014, 17:12:14 CEST »
0
Metti NomeActivity.this e NomeActivity.class come parametri

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 323
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:errore in un intent
« Risposta #2 il: 21 Ottobre 2014, 17:17:01 CEST »
0
ah grazie mille :D risolto :D
non posto il codice (come farei di solito) perché è una modifica semplicissima

grazie ancora!!!

Post unito: 21 Ottobre 2014, 17:33:32 CEST
un'ultimissima cosa....

per ottenere la posizione dell'elemento cliccato nella listview.... che presumo sarà memorizzata in pos.... come faccio a ottenerla?

ho provato con questo tipo di codice:

Codice (Java): [Seleziona]
 listView.setOnItemClickListener(new OnItemClickListener(){
       
                @Override
                public void onItemClick(AdapterView<?> titolo, View view, int pos,
                                long id) {
                        // TODO Auto-generated method stub
                       
                        final int posizione =(int)titolo.getItemAtPosition(pos);                       

                        if(pos==3){
                                Intent i=new Intent(MainActivity.this,eventi.class);
                                startActivity(i);
                        }
                        if(pos==5){
                                Intent i= new Intent (MainActivity.this,dovesiamo.class);
                                startActivity(i);
                        }
                       
                }
    });

ma naturalmente è sbagliato perché non posso fare il cast da Objocet a int (come mi il "buon" eclipse mi avverte)

suggerimenti?

poi giuro che chiudo e non riapro il post xD

grazie mille
« Ultima modifica: 21 Ottobre 2014, 17:33:32 CEST da ValerioAdo, Reason: Merged DoublePost »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:errore in un intent
« Risposta #3 il: 21 Ottobre 2014, 18:12:13 CEST »
0
Forse mi sfugge qualcosa, ma la posizione è già pos.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 323
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:errore in un intent
« Risposta #4 il: 21 Ottobre 2014, 18:30:51 CEST »
0
infatti è quello che avevo pensato subito anche io ma mandandolo in run senza la riga che ho aggiunto(quella dove mi da errore) non mi cambia la pagina quindi ho provato ad aggiungere quella riga di codice

Post unito: 22 Ottobre 2014, 08:50:32 CEST
si ok avevi ragione te, ho tolto la riga e ora passa all'altra pagina, il problema è mi si chiude l'app

grazie mille a tutti :D
« Ultima modifica: 22 Ottobre 2014, 08:50:32 CEST da ValerioAdo, Reason: Merged DoublePost »

Offline Damien

  • Utente junior
  • **
  • Post: 63
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lenovo ZUK Z1
  • Sistema operativo:
    Windows 10
Re:errore in un intent
« Risposta #5 il: 26 Ottobre 2014, 17:35:25 CET »
0
Se vuoi ottenere il numero della posizione devi usare l'id non il pos, ti consiglio di usare uno switch e non gli if,
Quindi sarebbe:

Codice: [Seleziona]
switch((int)id) {
        case 0: //i numeri partono da 0 e non da 1
                ....
        case 1:
                ....

}
Se ti sono stato d'aiuto premi il tasto THANKS :)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 323
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:errore in un intent
« Risposta #6 il: 27 Ottobre 2014, 08:55:35 CET »
0
si ok sono riuscito a risolvere,era una cosa semplice ^^

il problema è che nel logcat mi dice :
Codice: [Seleziona]
10-27 03:40:27.763: E/dalvikvm(775): Could not find class 'com.example.blablapp.dovesiamo', referenced from method com.example.blablapp.MainActivity$1.onItemClick
ma l'xml è corretto
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.blablapp"
   android:versionCode="1"
   android:versionName="1.0" >

    <uses-sdk
       android:minSdkVersion="16"
       android:targetSdkVersion="21" />
   
     <uses-feature
       android:glEsVersion="0x00020000"
       android:required="true" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <!--
    The following two permissions are not required to use
    Google Maps Android API v2, but are recommended.
   -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <permission
       android:name="com.example.blablapp.permission.MAPS_RECEIVE"
       android:protectionLevel="signature" />

    <uses-permission android:name="com.example.blablapp.permission.MAPS_RECEIVE" />
   

    <application
       android:allowBackup="true"
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
        <activity
           android:name=".MainActivity"
           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="com.example.blablapp.dovesiamo"></activity>
        <activity android:name="com.example.blablapp.eventi"></activity>
         <activity android:name="com.example.blablapp.prenotazione"></activity>
          <activity android:name="com.example.blablapp.gallery"></activity>
         
          <meta-data
           android:name="com.google.android.gms.version"

           android:value="@integer/google_play_services_version" />

         <meta-data
           android:name="com.google.android.maps.v2.API_KEY"
           android:value="AIzaSyChTU4-Uo45jZic2DUSiuhDUnp-_ewiq10" />
    </application>

</manifest>

e anche il nome del file è corretto....

questo è il codice del MainActivity:
Codice (Java): [Seleziona]
import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.home);
       
       
        //definisco un array di stringhe
        String[] home =new String[]{"About","Gallery","Eventi","Prenotazione","Dove siamo"};
       
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, R.layout.rowhome,home);
    ListView listView = (ListView) findViewById(R.id.listView1);
    listView.setAdapter(adapter);
       
       
   
    listView.setOnItemClickListener(new OnItemClickListener(){
       
                @Override
                public void onItemClick(AdapterView<?> titolo, View view, int pos,
                                long id) {
                        // TODO Auto-generated method stub
                       
                        if(pos==1){
                                Intent i=new Intent(MainActivity.this,gallery.class);
                                startActivity(i);
                        }
                        if(pos==2){
                                Intent i=new Intent(MainActivity.this,eventi.class);
                                startActivity(i);
                        }
                        if(pos==3){
                                Intent i=new Intent(MainActivity.this,prenotazione.class);
                                startActivity(i);
                        }
                        if(pos==4){
                                //Intent i= new Intent (MainActivity.this,dovesiamo.class);
                                //startActivity(i);
                        }
                       
                }
    });
       
        }

        @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);
        }
}

sinceramente non so dove sbattere la testa x.x

Post unito: 27 Ottobre 2014, 14:01:27 CET
ho provato a cercare quale frammento di codice mi da quel "errore" e commentando

Codice (Java): [Seleziona]
...
if(pos==4){
                                //Intent i= new Intent(MainActivity.this,dovesiamo.class);
                                //startActivity(i);
                        }
...

il problema sparisce.... e sinceramente non so quale sia il problema che genera l'errore.... il codice mi sembra corretto...
« Ultima modifica: 27 Ottobre 2014, 14:01:27 CET da ValerioAdo, Reason: Merged DoublePost »

Offline Sirio22

  • Utente junior
  • **
  • Post: 93
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7/8.1
Re:errore in un intent
« Risposta #7 il: 27 Ottobre 2014, 16:33:56 CET »
0
La classe dovesiamo è nel package corretto? estende Activity?

P.S. I nodi delle classi dovrebbero iniziare con la lettera maiuscola ;)
Let Your Brain Run Away

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 323
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:errore in un intent
« Risposta #8 il: 27 Ottobre 2014, 16:38:53 CET »
0
Si è nel package corretto.
Prima di usare le API di Google maps non mi dava problemi e navigavo nel menù tranquillamente, da quando ho messo le API mi da questo problema