0

This is calling Activity:

package com.wikibuyers.consumocarburante;



import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.widget.ImageButton;
import android.widget.TextView;

public class RisultatoActivity extends Activity{

public static final String EXTRA_MESSAGE = "Chilometri percorsi Litri consumati";
public static final String EXTRA_MESSAGE_2 = "Percorrenza e consumo";
public static final String EXTRA_MESSAGE_3 = "Frase da condividere";

private static final int DIALOG_ALERT_ID = 1;

private String[] extraMessages2 = new String[2];


 TextView txt=null;
 TextView txt1=null;


@SuppressWarnings("deprecation")
@Override


public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); 
 setContentView(R.layout.risultato);

   txt = (TextView) findViewById(R.id.textView47);
   txt1 = (TextView) findViewById(R.id.textView48);







 Typeface font = Typeface.createFromAsset(getAssets(), "LCD-BOLD.TTF");


 txt.setTypeface(font); 
 txt1.setTypeface(font);




 Intent intent = getIntent();

 String[] messages = intent.getStringArrayExtra(Passo2Activity.EXTRA_MESSAGE);

 double km = Double.parseDouble(messages[0]);
 double litri = Double.parseDouble(messages[1]);
 double consumo = 0;
 double percorrenza = 0;

   try{

   consumo = (km/litri);
   percorrenza = (litri*100)/km;

   } catch(ArithmeticException e){

       showDialog(DIALOG_ALERT_ID);

   }

   String temp1 = String.valueOf(consumo);
   String temp2 = String.valueOf(percorrenza);

   String temp1troncato = String.format("%.2f", consumo);
   String temp2troncato = String.format("%.2f", percorrenza);

   txt.setText(temp1);
   txt1.setText(temp2);

   extraMessages2[0] = temp1troncato;
   extraMessages2[1] = temp2troncato;

   ImageButton bottoneIndietro = (ImageButton)findViewById(R.id.imageButton9);
 bottoneIndietro.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ImageButton myButton = (ImageButton) findViewById(R.id.imageButton9 ); 
             Animation anim = new AlphaAnimation(0.0f, 1.0f);// LAMPEGGIO BOTTONE 1

              anim.setDuration(20); //SI PUò CONTROLLARE LA DURATA DEL LAMPEGGIO CON  QUESTO PARAMETRO
              anim.setStartOffset(20);
              anim.setRepeatMode(Animation.REVERSE);
              myButton.startAnimation(anim);

              anim.setRepeatCount(5);  

            startPasso2Activity();

        }
    });

ImageButton bottoneHome = (ImageButton)findViewById(R.id.imageButton11);
 bottoneHome.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ImageButton myButton = (ImageButton) findViewById(R.id.imageButton11 ); 
             Animation anim = new AlphaAnimation(0.0f, 1.0f);// LAMPEGGIO BOTTONE 1

              anim.setDuration(20); //SI PUò CONTROLLARE LA DURATA DEL LAMPEGGIO CON QUESTO PARAMETRO
              anim.setStartOffset(20);
              anim.setRepeatMode(Animation.REVERSE);
              myButton.startAnimation(anim);

              anim.setRepeatCount(5);  

            startHomeActivity();

        }
    });


 ImageButton bottoneCondividi = (ImageButton)findViewById(R.id.imageButton6);
 bottoneCondividi.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ImageButton myButton = (ImageButton) findViewById(R.id.imageButton6); 
             Animation anim = new AlphaAnimation(0.0f, 1.0f);// LAMPEGGIO BOTTONE 1

              anim.setDuration(20); //SI PUò CONTROLLARE LA DURATA DEL LAMPEGGIO CON QUESTO PARAMETRO
              anim.setStartOffset(20);
              anim.setRepeatMode(Animation.REVERSE);
              myButton.startAnimation(anim);

              anim.setRepeatCount(5);  

            startInserimentoDatiActivityCondividi();

        }
    });



 ImageButton bottonePreferiti = (ImageButton)findViewById(R.id.imageButton4);
 bottonePreferiti.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ImageButton myButton = (ImageButton) findViewById(R.id.imageButton4); 
             Animation anim = new AlphaAnimation(0.0f, 1.0f);// LAMPEGGIO BOTTONE 1

              anim.setDuration(20); //SI PUò CONTROLLARE LA DURATA DEL LAMPEGGIO CON QUESTO PARAMETRO
              anim.setStartOffset(20);
              anim.setRepeatMode(Animation.REVERSE);
              myButton.startAnimation(anim);

              anim.setRepeatCount(5);  

            startInserimentoDatiActivityPreferiti();

        }
    });



}



@Override
protected Dialog onCreateDialog(int id) {
    Dialog dialog = null;

    if (id == DIALOG_ALERT_ID){

        dialog = createAlertDialog();}

    return dialog;
}


  private Dialog createAlertDialog() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Attenzione");
    builder.setMessage("E' necessario inserire valori diversi da zero in tutte e due le caselle");
    builder.setCancelable(false);
    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        @SuppressWarnings("deprecation")
        @Override
        public void onClick(DialogInterface dialog, int which) {
        //  Intent i = new Intent(getApplicationContext(),Passo2Activity.class);
        //  startActivity(i);
            dismissDialog(DIALOG_ALERT_ID);

        }
    });

    AlertDialog alert = builder.create();
    return alert;

  }



  public void startPasso2Activity(){

        Intent i = new Intent(getApplicationContext(),Passo2Activity.class);
        startActivity(i);


    }

  public void startHomeActivity(){

    Intent i = new Intent(getApplicationContext(),PrimaPaginaActivity.class);
    startActivity(i);


}

  public void startInserimentoDatiActivityCondividi(){


        Intent i = new Intent(getApplicationContext(),InserimentoDatiActivityCondividi.class);

        i.putExtra(EXTRA_MESSAGE_2, extraMessages2);
        startActivity(i);
  }


  public void startInserimentoDatiActivityPreferiti(){


       Intent i = new   Intent(getApplicationContext(),InserimentoDatiActivityPreferiti.class);

       i.putExtra(EXTRA_MESSAGE_2, extraMessages2);
       startActivity(i);
   }




}

This other is called Activity:

package com.wikibuyers.consumocarburante;



import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Spinner;
import android.widget.TextView;

public class InserimentoDatiActivityCondividi extends Activity implements   OnItemSelectedListener{
public static EditText edit = null;
public static TextView tv = null;

String frase;

private static final int DIALOG_ALERT_ID = 1;

Intent sendIntent = new Intent();

@Override
   public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); 
 setContentView(R.layout.inserimento_dati_mezzo_condividi);

 edit = (EditText)findViewById(R.id.editText4);
 tv = (TextView)findViewById(R.id.textView53);
 Spinner spinner = (Spinner) findViewById(R.id.spinner2);


 frase = (String) tv.getText();
 sendIntent.setAction(Intent.ACTION_SEND);
 sendIntent.putExtra(Intent.EXTRA_TEXT, frase);
 sendIntent.setType("text/plain");

// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.scelta_incipit, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);


Intent intent = getIntent();
final String[] messages = intent.getStringArrayExtra(RisultatoActivity.EXTRA_MESSAGE_2);

ImageButton bottoneAggiorna = (ImageButton)findViewById(R.id.imageButton13);
 bottoneAggiorna.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ImageButton myButton = (ImageButton) findViewById(R.id.imageButton13); 
             Animation anim = new AlphaAnimation(0.0f, 1.0f);// LAMPEGGIO BOTTONE 1

              anim.setDuration(20); //SI PUò CONTROLLARE LA DURATA DEL LAMPEGGIO CON QUESTO PARAMETRO
              anim.setStartOffset(20);
              anim.setRepeatMode(Animation.REVERSE);
              myButton.startAnimation(anim);

              anim.setRepeatCount(5);  

              tv.setText(edit.getText()+"  percorre "+messages[0]+" km/l e consuma "+messages[1]+" litri per 100 Km");

        }
    });



 ImageButton bottoneIndietro = (ImageButton)findViewById(R.id.imageButton20);
 bottoneIndietro.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ImageButton myButton = (ImageButton) findViewById(R.id.imageButton20 ); 
             Animation anim = new AlphaAnimation(0.0f, 1.0f);// LAMPEGGIO BOTTONE 1

              anim.setDuration(20); //SI PUò CONTROLLARE LA DURATA DEL LAMPEGGIO CON QUESTO PARAMETRO
              anim.setStartOffset(20);
              anim.setRepeatMode(Animation.REVERSE);
              myButton.startAnimation(anim);

              anim.setRepeatCount(5);  

            startRisultatoActivity();

        }
    });


 ImageButton bottoneHome = (ImageButton)findViewById(R.id.imageButton19);
 bottoneHome.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ImageButton myButton = (ImageButton) findViewById(R.id.imageButton19 ); 
             Animation anim = new AlphaAnimation(0.0f, 1.0f);// LAMPEGGIO BOTTONE 1

              anim.setDuration(20); //SI PUò CONTROLLARE LA DURATA DEL LAMPEGGIO CON QUESTO PARAMETRO
              anim.setStartOffset(20);
              anim.setRepeatMode(Animation.REVERSE);
              myButton.startAnimation(anim);

              anim.setRepeatCount(5);  

            startHomeActivity();

        }
    });


 ImageButton buttonCondivisione = (ImageButton)findViewById(R.id.imageButton16);

 buttonCondivisione.setOnClickListener(new View.OnClickListener() {

     @Override
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)     //warning e varie soppressi per poter agire sulla Clipboard più sotto
        @SuppressLint("NewApi")
        public void onClick(View v) {

         ImageButton buttonCondivisione = (ImageButton)findViewById(R.id.imageButton16);
             Animation anim = new AlphaAnimation(0.0f, 1.0f);// LAMPEGGIO BOTTONE RANDOM

              anim.setDuration(20); //SI PUò CONTROLLARE LA DURATA DEL LAMPEGGIO CON QUESTO PARAMETRO
              anim.setStartOffset(20);
              anim.setRepeatMode(Animation.REVERSE);
            buttonCondivisione.startAnimation(anim);

              anim.setRepeatCount(5);

            showDialog(DIALOG_ALERT_ID);

            }});


 ImageButton bottoneAnnulla = (ImageButton)findViewById(R.id.imageButton17);
 bottoneAnnulla.setOnClickListener(new View.OnClickListener() {


        @Override
        public void onClick(View v) {
            ImageButton myButton = (ImageButton) findViewById(R.id.imageButton17); 
             Animation anim = new AlphaAnimation(0.0f, 1.0f);// LAMPEGGIO BOTTONE 1

              anim.setDuration(20); //SI PUò CONTROLLARE LA DURATA DEL LAMPEGGIO CON QUESTO PARAMETRO
              anim.setStartOffset(20);
              anim.setRepeatMode(Animation.REVERSE);
              myButton.startAnimation(anim);

              anim.setRepeatCount(5);  


              if(tv.getText()!=""){tv.setText("");}



        }
    });



}




   @Override
    protected Dialog onCreateDialog(int id) {
        Dialog dialog;
        switch (id) {
        case DIALOG_ALERT_ID:
            dialog = createAlertDialog();
            break;

        default:
            dialog = null;
            break;
        }
        return dialog;
    }


 private Dialog createAlertDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Avviso");
        builder.setMessage("Solo per Facebook bisogna incollare il testo sulla casella di condivisione tenendo premuto a lungo e cliccando sul popup ''incolla'' che compare");
        builder.setCancelable(false);
        builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                startActivity(Intent.createChooser(sendIntent, "Condividi la frase con:"));
                dismissDialog(DIALOG_ALERT_ID);

            }
        });

        AlertDialog alert = builder.create();
        return alert;

      }




 @Override
public void onItemSelected(AdapterView<?> parent, View view, 
            int pos, long id) {
     edit.setText((CharSequence) parent.getItemAtPosition(pos));;
        // An item was selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos)
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        // Another interface callback
    }


    public void startRisultatoActivity(){

        Intent i = new Intent(getApplicationContext(),RisultatoActivity.class);
        startActivity(i);


    }

    public void startHomeActivity(){

        Intent i = new Intent(getApplicationContext(),PrimaPaginaActivity.class);
        startActivity(i);


    }


}

and finally that's LogCat with errors when I debug app on my phone and I try to press my backbutton called bottoneIndietro. I suppose the trouble is in last two lines of LogCat, where it says: "getTextBeforeCursor on inactive InputConnection". I have searched for this problem but I didn't found my solution. Any suggestion will be appreciated. Thanks.

07-05 16:20:29.216: I/dalvikvm(25677): Debugger is active
07-05 16:20:29.255: I/System.out(25677): Debugger has connected
07-05 16:20:29.255: I/System.out(25677): waiting for debugger to settle...
07-05 16:20:29.450: I/System.out(25677): waiting for debugger to settle...
07-05 16:20:29.653: I/System.out(25677): waiting for debugger to settle...
07-05 16:20:29.857: I/System.out(25677): waiting for debugger to settle...
07-05 16:20:30.052: I/System.out(25677): waiting for debugger to settle...
07-05 16:20:30.255: I/System.out(25677): waiting for debugger to settle...
07-05 16:20:30.458: I/System.out(25677): waiting for debugger to settle...
07-05 16:20:30.653: I/System.out(25677): waiting for debugger to settle...
07-05 16:20:30.857: I/System.out(25677): waiting for debugger to settle...
07-05 16:20:31.060: I/System.out(25677): waiting for debugger to settle...
07-05 16:20:31.255: I/System.out(25677): debugger has settled (1474)
07-05 16:20:31.419: D/dalvikvm(25677): GC_FOR_ALLOC freed 79K, 2% free 8932K/9040K,  paused 32ms, total 33ms
07-05 16:20:31.427: I/dalvikvm-heap(25677): Grow heap (frag case) to 10.487MB for  1822516-byte allocation
07-05 16:20:31.458: D/dalvikvm(25677): GC_FOR_ALLOC freed <1K, 2% free 10711K/10820K, paused 24ms, total 24ms 
07-05 16:20:31.474: D/dalvikvm(25677): GC_CONCURRENT freed <1K, 2% free 10711K/10820K,   paused 3ms+1ms, total 17ms
07-05 16:20:31.544: D/dalvikvm(25677): GC_FOR_ALLOC freed <1K, 1% free 10712K/10820K, paused 11ms, total 11ms
07-05 16:20:31.552: I/dalvikvm-heap(25677): Grow heap (frag case) to 12.225MB for   1822516-byte allocation 
07-05 16:20:31.560: D/dalvikvm(25677): GC_FOR_ALLOC freed 0K, 1% free 12492K/12600K, paused 14ms, total 14ms
07-05 16:20:31.583: D/dalvikvm(25677): GC_CONCURRENT freed 1K, 1% free 12494K/12600K, paused 3ms+6ms, total 21ms
07-05 16:20:31.724: D/libEGL(25677): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
07-05 16:20:31.739: D/libEGL(25677): loaded   /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
07-05 16:20:31.755: D/libEGL(25677): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
07-05 16:20:31.849: D/OpenGLRenderer(25677): Enabling debug mode 0
07-05 16:21:07.841: D/dalvikvm(25677): GC_CONCURRENT freed 55K, 1% free 13526K/13612K, paused 6ms+3ms, total 21ms
07-05 16:21:15.607: W/IInputConnectionWrapper(25677): getTextBeforeCursor on inactive InputConnection
07-05 16:21:15.653: W/IInputConnectionWrapper(25677): getTextAfterCursor on inactive InputConnection
07-05 16:21:47.974: D/dalvikvm(25677): GC_CONCURRENT freed 158K, 2% free 14853K/15040K, paused 12ms+4ms, total 29ms





This is LogCat after pressing my backbutton. Question is solved: I must add a library that was accidentally removed.

   ...
    07-05 16:20:31.255: I/System.out(25677): debugger has settled (1474)
    07-05 16:20:31.419: D/dalvikvm(25677): GC_FOR_ALLOC freed 79K, 2% free 8932K/9040K,  paused 32ms, total 33ms
    07-05 16:20:31.427: I/dalvikvm-heap(25677): Grow heap (frag case) to 10.487MB for  1822516-byte allocation
    07-05 16:20:31.458: D/dalvikvm(25677): GC_FOR_ALLOC freed <1K, 2% free 10711K/10820K, paused 24ms, total 24ms 
    07-05 16:20:31.474: D/dalvikvm(25677): GC_CONCURRENT freed <1K, 2% free 10711K/10820K,   paused 3ms+1ms, total 17ms
    07-05 16:20:31.544: D/dalvikvm(25677): GC_FOR_ALLOC freed <1K, 1% free 10712K/10820K, paused 11ms, total 11ms
    07-05 16:20:31.552: I/dalvikvm-heap(25677): Grow heap (frag case) to 12.225MB for   1822516-byte allocation 
    07-05 16:20:31.560: D/dalvikvm(25677): GC_FOR_ALLOC freed 0K, 1% free 12492K/12600K, paused 14ms, total 14ms
    07-05 16:20:31.583: D/dalvikvm(25677): GC_CONCURRENT freed 1K, 1% free 12494K/12600K, paused 3ms+6ms, total 21ms
    07-05 16:20:31.724: D/libEGL(25677): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
    07-05 16:20:31.739: D/libEGL(25677): loaded   /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
    07-05 16:20:31.755: D/libEGL(25677): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
    07-05 16:20:31.849: D/OpenGLRenderer(25677): Enabling debug mode 0
    07-05 16:21:07.841: D/dalvikvm(25677): GC_CONCURRENT freed 55K, 1% free 13526K/13612K, paused 6ms+3ms, total 21ms
    07-05 16:21:15.607: W/IInputConnectionWrapper(25677): getTextBeforeCursor on inactive InputConnection
    07-05 16:21:15.653: W/IInputConnectionWrapper(25677): getTextAfterCursor on inactive InputConnection
    07-05 16:21:47.974: D/dalvikvm(25677): GC_CONCURRENT freed 158K, 2% free 14853K/15040K, paused 12ms+4ms, total 29ms

Last LogCat after editing your suggestions:

   ...
    07-05 17:29:40.497: I/System.out(27349): debugger has settled (1389)
    07-05 17:29:40.661: D/dalvikvm(27349): GC_FOR_ALLOC freed 57K, 1% free 8932K/9020K, paused 27ms, total 29ms
    07-05 17:29:40.661: I/dalvikvm-heap(27349): Grow heap (frag case) to 10.487MB for 1822516-byte allocation
    07-05 17:29:40.685: D/dalvikvm(27349): GC_FOR_ALLOC freed <1K, 1% free 10711K/10800K, paused 19ms, total 19ms
    07-05 17:29:40.700: D/dalvikvm(27349): GC_CONCURRENT freed <1K, 1% free 10711K/10800K, paused 3ms+2ms, total 20ms
    07-05 17:29:40.786: D/dalvikvm(27349): GC_FOR_ALLOC freed <1K, 1% free 10712K/10800K, paused 10ms, total 10ms
    07-05 17:29:40.786: I/dalvikvm-heap(27349): Grow heap (frag case) to 12.225MB for 1822516-byte allocation
    07-05 17:29:40.802: D/dalvikvm(27349): GC_FOR_ALLOC freed <1K, 1% free 12492K/12580K, paused 18ms, total 18ms
    07-05 17:29:40.817: D/dalvikvm(27349): GC_CONCURRENT freed 1K, 1% free 12496K/12580K, paused 2ms+2ms, total 14ms
    07-05 17:29:40.872: D/libEGL(27349): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
    07-05 17:29:40.880: D/libEGL(27349): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
    07-05 17:29:40.880: D/libEGL(27349): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
    07-05 17:29:40.974: D/OpenGLRenderer(27349): Enabling debug mode 0
    07-05 17:30:52.685: D/dalvikvm(27349): GC_CONCURRENT freed 58K, 1% free 13524K/13612K, paused 3ms+3ms, total 37ms
    07-05 17:31:00.880: W/IInputConnectionWrapper(27349): getTextBeforeCursor on inactive InputConnection
    07-05 17:31:00.935: W/IInputConnectionWrapper(27349): getTextAfterCursor on inactive InputConnection
EpicPandaForce
  • 79,669
  • 27
  • 256
  • 428
Domenico Pacecca
  • 295
  • 1
  • 7
  • 14
  • 1
    Because they do different things. The phone's back button is equivalent to calling finish() on your activity. Your "back button" is starting an activity. So why would you expect them to behave the same? – Gabe Sechan Jul 05 '14 at 15:17
  • I know this question is very old, but did you find a solution? I think I'm having a similar problem in my question: https://stackoverflow.com/questions/50230834/prism-navigation-first-backpressed-doesnt-react – Dennis Schröer May 08 '18 at 13:24

1 Answers1

0
 public void startRisultatoActivity(){

     finish();

    }

this is same as onbackpressed

calling finish removes the present activity from backstack where as calling new activity adds the current activity to backstack

SHASHIDHAR MANCHUKONDA
  • 3,302
  • 2
  • 19
  • 40