Item chosen in Spinner, be a global variable

1

Good afternoon guys,

I have an activity that has a Spinner, the value chosen in that Spinner is sent to another activity where I do the getIntent and I get the Spinner value, my doubt is, I would like to turn the Received Item into a global variable , to use it in any Activity.

Follow the code for my Activity.

Activity sending data:

"SecondActivity"

package br.exemplosqlite;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;

import org.w3c.dom.Text;

public class SecondActivity extends Activity implements AdapterView.OnItemSelectedListener {



@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    //referencia a Spinner
    //Spinner coligada;

    //final TextView nome = (TextView)findViewById(R.id.txvNome);
    //final TextView sobrenome = (TextView)findViewById(R.id.txvSobrenome);
    //final Spinner pday = (Spinner)findViewById(R.id.spinner);

    final Spinner spcoligada = (Spinner)findViewById(R.id.coligada);








    //spinner = (Spinner)findViewById(R.id.spinner);

    ArrayAdapter adaptercoligada= ArrayAdapter.createFromResource(this, R.array.coligada, android.R.layout.simple_spinner_item);
    spcoligada.setAdapter(adaptercoligada);



    Button ok = (Button)findViewById(R.id.btnok);







    ok.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //chamada para a nova Activity
            Intent intent = new Intent(SecondActivity.this, TerceiraActivity.class);
            intent.putExtra("coligada", spcoligada.getSelectedItem().toString());


            //intent.putExtra("nomePessoa", nome.getText().toString());
            //intent.putExtra("sobrenomePessoa", sobrenome.getText().toString());
            //intent.putExtra("day", pday.getSelectedItem().toString());










            startActivity(intent);
        }
    });
}




@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
    }

And this is the "ThirdActivity" that receives the data.

package br.exemplosqlite;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Spinner;
import android.widget.TextView;

public class TerceiraActivity extends Activity {








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

    Intent intent = getIntent();
    //String parametro = (String) intent.getSerializableExtra("nomePessoa");
    //String psobrenome = (String) intent.getSerializableExtra("sobrenomePessoa");
    //String ppday = (String) intent.getSerializableExtra("day");

    String pcoligada = (String) intent.getSerializableExtra("coligada");











    //TextView nome = (TextView)findViewById(R.id.txvNome);
    //TextView sobrenome = (TextView)findViewById(R.id.txvSobrenome);
    TextView coligadas = (TextView)findViewById(R.id.spvcoligada);







    //nome.setText("Olá " + parametro + ", Tem de fazer a barba " );
    coligadas.setText("coliga escolhida : "+ pcoligada);


}


    }
    
asked by anonymous 20.02.2016 / 19:08

2 answers

0

create a global variable with the same name as the one it receives, and at the time of receiving, use this.variable ... so it becomes global ... I do not know if it will help. ex: declare an int i variable as global in the third activity and at the time of receiving this value from the second, use for example this.i = i; (the first i is the third activity and the second i is the one you received from the second)

    
24.02.2016 / 14:46
0

I suggest you two hypotheses:

1st Create a class of variables static , so just call the name of the class.variable, eg:

public class Globais{
    static String coligada;
}

2nd Save to phone memory if you want to save this variable even after closing the application, in this case it depends on what you want to do in your application. For this we use the class SharedPreferences , eg:

Initialize

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

Receiving

String storedPreference = preferences.getString("coligada", "valorPorDefeito");

Save

SharedPreferences.Editor editor = preferences.edit();
editor.putString("coligada", pcoligada); // varivel a guardar
editor.commit();
    
21.02.2016 / 00:01