在 Spinner 上选择的项目是全局的 - Android

Item selected on Spinner be global - Android

我有两个 Activitys ,其中 "SecondActivity" 有一个 Spinner , Spinner 上的选定项目被发送到 "TerceiraActivity" 。

但是,我想让在 Spinner 上选择的项目成为全局变量,所以这样我会把这个变量放在另一个 class 中,称为 "BD.class"

这里是"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) {

}
      }

这是"TerceiraActivity"

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 特塞拉 Activity 扩展 Activity {

@Override
public 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);


}


    }

这是"BD.class"

package br.exemplosqlite;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

 public class BD {
private SQLiteDatabase bd;

public BD(Context context){
    BDCore auxBd = new BDCore(context);
    bd = auxBd.getWritableDatabase();
}


public void inserir(Produtos produtos){
    ContentValues valores = new ContentValues();
    valores.put("item", produtos.getItem());
    valores.put("coligada", produtos.getColigada());
    valores.put("filial", produtos.getFilial());


    bd.insert("produtos2", null, valores);
}


public void atualizar(Produtos produtos){
    ContentValues valores = new ContentValues();

    valores.put("item", produtos.getItem());
    valores.put("coligada", produtos.getColigada());
    valores.put("filial", produtos.getFilial());

    bd.update("produtos2", valores, "_id = ?", new String[]{""+produtos.getId()});
}


public void deletar(Produtos produtos){
    bd.delete("produtos2", "_id = "+produtos.getId(), null);
}


public List<Produtos> buscar(){
    List<Produtos> list = new ArrayList<Produtos>();
    String[] colunas = new String[]{"_id", "item", "coligada","filial"};

    Cursor cursor = bd.rawQuery("select * from produtos2",null);

    if(cursor.getCount() > 0){
        cursor.moveToFirst();

        do{

            Produtos p = new Produtos();
            p.setId(cursor.getLong(0));
            p.setItem(cursor.getString(1));
            p.setColigada(cursor.getString(2));
            p.setFilial(cursor.getString(3));
            list.add(p);

        }while(cursor.moveToNext());
    }

    return(list);
}
             }

您可以将其存储在共享中 preferences.Just 将以下代码复制到一个名为 AppSharedPreferences

的新 class 中
public class AppSharedPreferences {
private SharedPreferences appSharedPrefs;
private SharedPreferences.Editor prefsEditor;
private static AppSharedPreferences appSharedPrefrence;

public AppSharedPreferences(Context context) {
    this.appSharedPrefs = context.getSharedPreferences("sharedpref", Context.MODE_PRIVATE);
    this.prefsEditor = appSharedPrefs.edit();
}

public static AppSharedPreferences getsharedprefInstance(Context con) {
    if (appSharedPrefrence == null)
        appSharedPrefrence = new AppSharedPreferences(con);
    return appSharedPrefrence;
}

public SharedPreferences getAppSharedPrefs() {
    return appSharedPrefs;
}

public void setAppSharedPrefs(SharedPreferences appSharedPrefs) {
    this.appSharedPrefs = appSharedPrefs;
}

public SharedPreferences.Editor getPrefsEditor() {
    return prefsEditor;
}

public void Commit() {
    prefsEditor.commit();
}

public void clearallSharedPrefernce() {
    prefsEditor.clear();
    prefsEditor.apply();
}
public void setSession(String session)
{
    this.prefsEditor=appSharedPrefs.edit();
    prefsEditor.putString("session",session);
    prefsEditor.apply();
}
public String getSession()
{
    return appSharedPrefs.getString("session","");
}

}

并在您的 class 中使用它来创建它的对象,就像这样 首先像这样定义一个对象

AppSharedPreferences appSharedPreferences;

然后像这样实例化它

appSharedPreferences = AppSharedPreferences.getsharedprefInstance(YourActivityName.this);

然后调用setter方法保存值

appSharedPreferences.setSession(your value);

并类似地使用 getter 方法取回值

我找到了解决方案,创建了一个全局 Class ,并分配了我的 Spinner.toString(); 的值;

感谢大家:D