Autore Topic: Import  (Letto 1807 volte)

vincenzodicicco

  • Visitatore
Import
« il: 14 Giugno 2010, 13:56:31 CEST »
0
Salve ho scritto del codice per un semplice avviso tramite alert che userò con più frequenza. Ora se io volessi evitare di creare una classe che faccia ciò all'interno dell OnCreate, ma volessi creare un secondo file java da importare per poter richiamare il mio alert quando occorre come dovrei procedere?.
Da Eclipse ho provato: File-New-Class, e a scrivere il codice al suo interno ma escono fuori molti errori, ho controllato ci fossero gli import giusti e il codice risulta corretto difatti funziona se non utilizzo questo metodo. Consigli? il codice in questione è questo:
Codice (Java): [Seleziona]
   public  void alert(String testo, String titolo){
        AlertDialog.Builder builder;
        builder = new AlertDialog.Builder(this);
        builder.setCancelable(false);
        builder.setMessage(testo);
        builder.setTitle(titolo);
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                                dialog.cancel();
                        }
                });
        builder.show();
    }
importando:
Codice (Java): [Seleziona]
import android.app.AlertDialog;
import android.content.DialogInterface;







EDIT:
Sono riuscito più o meno. ho creato una classe alert con un metodo msgbox al suo interno che contiene il codice per l'alert, ho importato nel programma pero ora quando la richiamo ho problemi con il context di :
Codice (Java): [Seleziona]
        builder = new AlertDialog.Builder(this);Ho provato a modificare il metodo in questo modo:
Codice (Java): [Seleziona]
   public  void msgbox(String testo, String titolo, Context context){
        AlertDialog.Builder builder;
        builder = new AlertDialog.Builder(context);
        builder.setCancelable(false);
        builder.setMessage(testo);
        builder.setTitle(titolo);
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                                dialog.cancel();
                        }
                });
        builder.show();
    }
chiamandolo in questo modo
Codice (Java): [Seleziona]
msgbox("prova", "prova", getApplicationContext());ma niente. Ho anche il dubbio che sia il modo in cui sto facendo questa procedura che mi ferma l'applicazione e che non sia il context.
« Ultima modifica: 14 Giugno 2010, 14:38:58 CEST da vincenzodicicco »

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Re:Import
« Risposta #1 il: 14 Giugno 2010, 15:01:08 CEST »
0
Ciao Vincenzo,

potresti incollare tutto il codice che stai scrivendo? Così da aiutarti meglio...perchè non sto capendo bene il tuo problema...

vincenzodicicco

  • Visitatore
Re:Import
« Risposta #2 il: 14 Giugno 2010, 15:10:30 CEST »
0
Certo grazie tante!!. Immagino che non riesco a spiegarmi bene scusami:
temp.java
Codice (Java): [Seleziona]
package com.temp;

import android.app.Activity;
import android.os.Bundle;
import com.temp.alert;
public class temp extends Activity {
    /** Called when the activity is first created. */
        alert prova;
        @Override
    public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        prova.msgbox("Prova testo", "Prova titolo",getApplicationContext());
       
        }
       
}
alert.java:
Codice (Java): [Seleziona]
package com.temp;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;


public class alert {
       
    public void msgbox(String testo, String titolo, Context context) {
                AlertDialog.Builder builder;
                builder = new AlertDialog.Builder(context); // Immagino che il problema sia qui. non so come rimediare. in questa modo ho provato a passare il getApplicationContext quando la richiamo
                builder.setCancelable(false);
                builder.setMessage(testo);
                builder.setTitle(titolo);
                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                                dialog.cancel();
                        }
                });
                builder.show();
       
    }

}

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Re:Import
« Risposta #3 il: 14 Giugno 2010, 15:13:36 CEST »
0
Così a naso senza penasrci troppo...
Non vedo l'istanziazione della classe alert

vedo alert pova; e poi prova.msgBox

o dichiari il metodo msgBox di alert come stico o per forza non funzionerà mai....

Ps:metti i nomi delle classi con al lettera maiuscola ;-)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Import
« Risposta #4 il: 14 Giugno 2010, 15:15:05 CEST »
0
La soluzione più elegante è quella di creare una activity "base" in cui definisci il tuo dialog nel metodo onCreateDialog e poi le tue due activity le derivi da quest'ultima classe.

Cmq nel codice che hai postato non vedo dove hai fatto la new dell'oggetto alert...
Inoltre, ti consiglio di evitare chianate al metodo getApplicationContext, piuttosto usa nomeActivity.this :)

vincenzodicicco

  • Visitatore
Re:Import
« Risposta #5 il: 15 Giugno 2010, 13:58:37 CEST »
0
Non ho capito tanto quello che avete detto, ho provato a fare un new ma sicuramente avrò sbagliato qualcosa infatti il codice viene segnato con errori.Potreste postare una possibile soluzione direttamente con il codice ? questi sono solo esempi che sto provando a fare per fare dei test. Magari cosi posso capire meglio, o se possibile li commentiamo insieme... :-[

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Re:Import
« Risposta #6 il: 15 Giugno 2010, 14:04:06 CEST »
0
Codice (Java): [Seleziona]
package com.temp;

import android.app.Activity;
import android.os.Bundle;
import com.temp.alert;
public class temp extends Activity {
    /** Called when the activity is first created. */
        alert prova;
        @Override
    public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
//manca la creazione dell'oggetto prova
        prova=new alert ();
//////
        prova.msgbox("Prova testo", "Prova titolo",getApplicationContext());
       
        }
       
}

vincenzodicicco

  • Visitatore
Re:Import
« Risposta #7 il: 15 Giugno 2010, 14:13:00 CEST »
0
Per prima cosa grazie mille!! il codice funziona benissimo solo una cosa :D, potresti spiegarmi la differenza tra
Codice (Java): [Seleziona]
alert prova;ed
Codice (Java): [Seleziona]
prova = new alert();infatti io ero convinto che bastasse "dichiarare"(scusate se inappropriato) prova come un "qualcosa"(Non so se è giusto dire oggetto) di tipo alert.
Per far funzionare il codice ho dovuto cambiare il getApplicationContext() con temp.this, sai dirmi il perchè?. scusa se approfitto per fare queste domande, ad ogni modo metto Topic risolto. Grazie davvero!! :-)

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Re:Import
« Risposta #8 il: 15 Giugno 2010, 14:18:05 CEST »
0
Ciao,

la scrittura del codice:

 alert prova;

è una dichiarazione di variabile

la scrittura del codice:

  prova =  new alert();

è invece l'istanziazione della classe alert

Ti consiglio "vivamente" di acquistare qualche buon libro di programmazione Java, chiedo a qualche studente di informatica/ingegneria di consigliartene qualcuno ;-)

vincenzodicicco

  • Visitatore
Re:Import
« Risposta #9 il: 15 Giugno 2010, 14:20:41 CEST »
0
Grazie tante  :-)

Offline ilcaduceo

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid
  • Sistema operativo:
    Ubuntu 10.04
Re:Import
« Risposta #10 il: 15 Giugno 2010, 15:06:44 CEST »
0
Ti consiglio questo ottimo libro che ti insegna le basi della programmazione ad oggetti attraverso il linguaggio java.

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Import
« Risposta #11 il: 15 Giugno 2010, 15:11:45 CEST »
0
Quoto, è lo stesso che ho utilizzato io :).
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Daystrom

  • Utente junior
  • **
  • Post: 90
  • Respect: +13
    • Mostra profilo
    • Starfleet
  • Dispositivo Android:
    HTC Magic + HTC Desire HD + Nexus S
  • Play Store ID:
    Daystrom
  • Sistema operativo:
    WXP
Re:Import
« Risposta #12 il: 15 Giugno 2010, 17:42:32 CEST »
0
Ti consiglio "vivamente" di acquistare qualche buon libro di programmazione Java, chiedo a qualche studente di informatica/ingegneria di consigliartene qualcuno ;-)

Per iniziare dalla base potresti anche scaricarti questo gratuito e in italiano... Poi decidi se comperare qualcosa di più "tosto"... ;-)
http://www.manuali.net/manuali/intro/java/java_mattone_dopo_mattone.html