Autore Topic: Problema passaggio activity  (Letto 537 volte)

Offline xmndcstl

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi mi4
  • Sistema operativo:
    Windows 8.1 & 7
Problema passaggio activity
« il: 30 Marzo 2015, 01:07:37 CEST »
0
Salve a tutti,
  intanto mi scuso se ho sbagliato sezione, ancora non mi oriento. Sono due giorni che sono fermo su una applicazione di matematica finanziaria in cui passando dei parametri l'applicazione deve calcolare l'incognita. Ho integrato l'applicazione di una splashActivity. Il problema è che la splash mi viene visualizzata ma al momento del passaggio dalla splash alla "main" mi esce in output "l'applicazione si è fermata".
sdk minimo 2.2 - massimo non impostato - testo le applicazioni generando apk che provo nel mio lg l9 II con android 4.1.2
P.S. uso android studio che non restituisce nessun errore in fase di compliazione.
Codice classe Main
Codice (Java): [Seleziona]
public class MainActivity extends ActionBarActivity {
    public double capitale = 0;
    public double t_anni = 0;
    public double t_mesi = 0;
    public double t_giorni = 0;
    public double tasso = 0;
    public double montante =0;
    public double tempoTot = 0;
    calcolatore calcola = new calcolatore();
    TextView output = (TextView) findViewById(R.id.tbOutput);
    EditText tb_capitale = (EditText) findViewById(R.id.tbCapitale);
    EditText tb_anni = (EditText) findViewById(R.id.tbAnni);
    EditText tb_mesi = (EditText) findViewById(R.id.tbMesi);
    EditText tb_giorni = (EditText) findViewById(R.id.tbGiorni);
    EditText tb_tasso = (EditText) findViewById(R.id.tbTasso);
    RadioButton radX = (RadioButton) findViewById(R.id.radioX);
    EditText tb_montante =(EditText) findViewById(R.id.tbMontante);
    Button btnAvvio = (Button) findViewById(R.id.btnCalcola);


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnAvvio.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ClickPulsanteAttivo();
            }
        });
    }

    public void ClickPulsanteAttivo(){
        try {
            if (radX.isChecked()){
                tempoTot = calcola.calcolaTempo(capitale, tasso, montante);
                int anni = (int) tempoTot;
                int mesi = (int) tempoTot*12;
                double variabilepergiorni = tempoTot*12;
                double giorni = (variabilepergiorni - mesi) * 30;
                output.setText("Anni= "+ anni + " mesi= " + mesi + " giorni= "+ (int) giorni );
            }
            if (tb_capitale.getText().toString().equals("x")){
                t_anni=Double.parseDouble(tb_anni.getText().toString());
                t_mesi = Double.parseDouble(tb_mesi.getText().toString());
                t_giorni = Double.parseDouble(tb_giorni.getText().toString());
                tasso = Double.parseDouble(tb_tasso.getText().toString());
                montante = Double.parseDouble(tb_montante.getText().toString());
                tempoTot = t_anni+(t_mesi/12)+(t_giorni/360);
                capitale = calcola.calcolaCapitale(montante, tasso, tempoTot);
                output.setText(Double.toString(capitale));
            } else if (tb_montante.getText().toString().equals("x")){
                t_anni=Double.parseDouble(tb_anni.getText().toString());
                t_mesi = Double.parseDouble(tb_mesi.getText().toString());
                t_giorni = Double.parseDouble(tb_giorni.getText().toString());
                tasso = Double.parseDouble(tb_tasso.getText().toString());
                capitale = Double.parseDouble(tb_capitale.getText().toString());
                tempoTot = t_anni+(t_mesi/12)+(t_giorni/360);
                montante = calcola.calcolaMontante(capitale, tasso, tempoTot);
                output.setText(Double.toString(montante));
            } else if (tb_tasso.getText().toString().equals("x")){
                t_anni=Double.parseDouble(tb_anni.getText().toString());
                t_mesi = Double.parseDouble(tb_mesi.getText().toString());
                t_giorni = Double.parseDouble(tb_giorni.getText().toString());
                montante = Double.parseDouble(tb_montante.getText().toString());
                capitale = Double.parseDouble(tb_capitale.getText().toString());
                tempoTot = t_anni+(t_mesi/12)+(t_giorni/360);
                tasso = calcola.calcolaTasso(montante, capitale, tempoTot);
                output.setText(Double.toString(tasso));
            }

        } catch(NumberFormatException nfe) {


            System.out.println("Testo delle tb non convertito");
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.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();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
codice classe splash

Codice (Java): [Seleziona]
public class SplashActivity extends Activity{
    private static final long MIN_WAIT_INTERVAL =  1500L;
    private static final long MAX_WAIT_INTERVAL =  3000L;
    private static final int GO_AHEAD_WHAT = 1;
    private long mStarTime;
    private boolean mIsDone;


    private Handler mHandler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            switch(msg.what) {
                case GO_AHEAD_WHAT:
                    long elapsedTime = SystemClock.uptimeMillis() - mStarTime;
                    if (elapsedTime >= MIN_WAIT_INTERVAL && !mIsDone) {
                        mIsDone = true;
                        goAhead();
                    }
                    break;
            }
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
    }
    @Override
    protected void onStart(){
        super.onStart();
        mStarTime = SystemClock.uptimeMillis();
        final Message goAheadMessage = mHandler.obtainMessage(GO_AHEAD_WHAT);
        mHandler.sendMessageAtTime(goAheadMessage, mStarTime + MAX_WAIT_INTERVAL);
    }
    private void goAhead() {
        final Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_first, 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();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
classe calcolatore (la uso per calcolare i vari parametri)
Codice (Java): [Seleziona]
public class calcolatore {
    private double montante;
    private double tasso;
    private double tempo;
    private double capitale;

    public double calcolaMontante(double vCapitale, double vTasso, double vTempo){
        capitale = vCapitale;
        tempo = vTempo;
        tasso = vTasso / 100;
        montante = capitale *(1+tasso*tempo);
        return montante;
    }

    public double calcolaTempo(double vCapitale, double vTasso, double vMontante)
    {
       capitale = vCapitale;
       tasso = vTasso;
       double interessi = vMontante - vCapitale;
       tempo = interessi/(capitale*tasso);
       return tempo;
    }

    public double calcolaCapitale(double vMontante, double vTasso, double vTempo){
        montante = vMontante;
        tasso = vTasso;
        tempo = vTempo;
        capitale = montante/(1+tasso*tempo);
        return capitale;
    }

    public double calcolaTasso(double vMontante, double vCapitale, double vTempo){
        montante = vMontante;
        capitale = vCapitale;
        tempo = vTempo;
        tasso = (montante-capitale)/(capitale*tempo);
        return tasso*100;
    }
}
layout main
Codice (XML): [Seleziona]
<TableLayout

   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"
   tools:context=".MainActivity"
   android:orientation="vertical">

     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="12pt"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/testTitolo"
        android:id="@+id/lbTitolo" />

     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="@string/capitale"
        android:textStyle="italic"
        android:textColor="@color/bright_foreground_inverse_material_dark"
        android:textSize="10pt"
        android:layout_marginTop="22dp"
        android:id="@+id/lbCapitale" />

     <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:ems="10"
        android:id="@+id/tbCapitale"
        android:layout_gravity="center_horizontal" />

     <TableRow
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

         <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textStyle="italic"
            android:textSize="10pt"
            android:textColor="@color/bright_foreground_inverse_material_dark"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="@string/testoTempo"
            android:layout_marginTop="3dp"
            android:id="@+id/lbTempo" />

         <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/radio"
            android:id="@+id/radioX"
            android:layout_column="18"
            android:textColor="#ff000000"
            android:textSize="7pt" />
     </TableRow>

     <EditText
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:ems="10"
        android:id="@+id/tbAnni"
        android:layout_gravity="center_horizontal" />

     <EditText
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:ems="10"
        android:id="@+id/tbMesi"
        android:layout_gravity="center_horizontal" />

     <EditText
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:ems="10"
        android:id="@+id/tbGiorni"
        android:layout_gravity="center_horizontal" />

     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/bright_foreground_inverse_material_dark"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="@string/montante"
        android:textStyle="italic"
        android:textSize="10pt"
        android:layout_marginTop="3dp"
        android:id="@+id/lbMontante" />

     <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:ems="10"
        android:id="@+id/tbMontante"
        android:layout_gravity="center_horizontal" />

     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="italic"
        android:textSize="10pt"
        android:textColor="@color/bright_foreground_inverse_material_dark"
        android:layout_marginTop="3dp"
        android:text="@string/tasso"
        android:id="@+id/lbTasso" />

     <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:ems="10"
        android:id="@+id/tbTasso"
        android:layout_gravity="center_horizontal" />

     <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/calcola"
        android:layout_marginTop="9dp"
        android:id="@+id/btnCalcola" />

     <TableRow
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

         <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text=""
            android:id="@+id/tbOutput"
            android:textStyle="bold"
            android:layout_marginTop="6dp"
            android:layout_column="0" />
     </TableRow>

 </TableLayout>
layout splash
Codice (xml<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"

    tools:context="com.xmndcstl.matfinanziaria.Splash_activity"
    android:id="@+id/layoutXsplash">

    <ImageView
        android:layout_width="@dimen/splash_size"
        android:layout_height="@dimen/splash_size"
        android:id="@+id/image_logo"
        android:src="@drawable/splashimg"
        android:layout_gravity="center"
        android:layout_marginBottom="25dp"/>


</FrameLayout>): [Seleziona]
 
manifest
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.xmndcstl.matfinanziaria" >

    <application
       android:allowBackup="true"
       android:icon="@drawable/icona_logo"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
        <activity android:name=".MainActivity"/>
        <activity

           android:name=".SplashActivity"
           android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Problema passaggio activity
« Risposta #1 il: 30 Marzo 2015, 09:24:08 CEST »
0
scusami, ma perchè non buildi direttamente?
Imposta il tuo telefono in modalità debug
collegalo al pc, ed esegui direttamente.
In questo modo puoi vedere il logcat, e scoprire dov'è l'errore.
Se proprio non riesci ad eseguire da android studio e vuoi installare l'apk manualmente (Procedura lenta e odiosa) installa anche alogcat sul tuo cell (se è pre kitkat) e così puoi vedere l'errore e postarlo qui

Offline xmndcstl

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi mi4
  • Sistema operativo:
    Windows 8.1 & 7
Re:Problema passaggio activity
« Risposta #2 il: 30 Marzo 2015, 09:48:37 CEST »
0
scusami, ma perchè non buildi direttamente?
Imposta il tuo telefono in modalità debug
collegalo al pc, ed esegui direttamente.
In questo modo puoi vedere il logcat, e scoprire dov'è l'errore.
Se proprio non riesci ad eseguire da android studio e vuoi installare l'apk manualmente (Procedura lenta e odiosa) installa anche alogcat sul tuo cell (se è pre kitkat) e così puoi vedere l'errore e postarlo qui
Si scusa appena posso lo posto!
Ecco questo credo sia l'errore..sapresti aiutarmi? @gabric
Codice: [Seleziona]
03-31 17:06:48.496  18736-18736/? E/appbox2﹕ isExcludedPackage  packagename = com.xmndcstl.matfinanziaria
03-31 17:06:48.506  18736-18736/? E/appbox2﹕ isExcludedPackage cursor.getCount() = 0
03-31 17:06:48.756  18080-18080/? E/dalvikvm﹕ Could not find class 'android.bluetooth.BluetoothManager', referenced from method com.google.android.gms.fitness.i.a.g
03-31 17:06:48.817  18037-18758/? E/dalvikvm﹕ Could not find class 'android.security.KeyPairGeneratorSpec$Builder', referenced from method com.google.android.gms.auth.e.a.a
03-31 17:06:48.827  18037-18037/? E/dalvikvm﹕ Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.ff.a
03-31 17:06:49.087      223-473/? E/SurfaceFlinger﹕ createSurface flags 0, w 1, h 1
03-31 17:06:49.467  18037-18812/? E/dalvikvm﹕ Could not find class 'android.os.UserHandle', referenced from method com.google.android.gms.icing.impl.a.f.a
03-31 17:06:49.918  18006-18017/? E/dalvikvm﹕ Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.ff.a
03-31 17:06:51.720  18869-18883/? E/dalvikvm﹕ Could not find class 'android.os.UserManager', referenced from method eu.chainfire.supersu.User.a
03-31 17:06:54.172      223-473/? E/SurfaceFlinger﹕ createSurface flags 0x400, w 1, h 1
03-31 17:06:54.182    1517-1517/? E/UEI.SmartControl﹕ Setup service releasing memory...
03-31 17:06:55.203    1517-1517/? E/UEI.SmartControl﹕ Setup service releasing memory...
03-31 17:06:57.135  18792-18792/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.xmndcstl.matfinanziaria/com.xmndcstl.matfinanziaria.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2018)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2119)
            at android.app.ActivityThread.access$600(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1204)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4952)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:561)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at android.app.Activity.findViewById(Activity.java:2008)
            at com.xmndcstl.matfinanziaria.MainActivity.<init>(MainActivity.java:24)
            at java.lang.Class.newInstanceImpl(Native Method)
            at java.lang.Class.newInstance(Class.java:1319)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1056)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2009)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2119)
            at android.app.ActivityThread.access$600(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1204)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4952)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:561)
            at dalvik.system.NativeStart.main(Native Method)
« Ultima modifica: 31 Marzo 2015, 17:18:31 CEST da xmndcstl »