0

I have a problem with saving spinner items to shared preferences. By problem I mean I really don't know how to do it. It would be nice if someone could actually explain it to me if someone knows.Thanks in advance :)

so I have set my button 1 to open a dialog with spinner and in spinner i have 3 items (declared in strings.xml). I should use shared preferences to set spinner to item 1 :"-" by default, and if user selects item 2 "lang1" or "lang2" it should be saved in app. So that when i open app next time its on "lang1" or "lang2" depends on selection.

Everything else is working fine.

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    SharedPreferences sharedpreferences;
    public static final String mypreference = "mypref";

    int spinnerPosition;
    public Button btnTrans, btnSelect,btnInput,btnCheck;
    public TextView tv_title, tv_message;


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

        btnSelect= (Button) findViewById(R.id.btnLanguage);
        btnInput = (Button) findViewById(R.id.btnInput);
        btnTrans = (Button) findViewById(R.id.btnTranslate);

        btnTrans.setOnClickListener((View.OnClickListener) this);
        btnInput.setOnClickListener(this);
        btnSelect.setOnClickListener(this);

        Spinner lang_spinner = (Spinner) findViewById(R.id.lang_spinner);

    }

    public void onClick(View v)
        {
        int id=v.getId();

        switch (id){
            case R.id.btnLanguage:

                AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
                View mView = getLayoutInflater().inflate(R.layout.language_dialog, null);
                mBuilder.setTitle("select language");
                final Spinner mSpinner = (Spinner) mView.findViewById(R.id.lang_spinner);
                final ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
                        android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.lang_array));

                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                mSpinner.setAdapter(adapter);
                mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    SharedPreferences.Editor editor = sharedpreferences.edit();

                    //SELECTING LANGUAGE switch case (translate btn)-
                    @Override
                    public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
                        Object item = adapterView.getItemAtPosition(position);
                        if (item != null) {

                            switch (position) {
                                case 0:
                                    item = "-";
                                    btnTrans.setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View view) {
                                            Toast.makeText(getApplicationContext(), R.string.nista, Toast.LENGTH_LONG).show();
                                        }
                                    });
                                    break;
                                case 1:
                                    item = "lang1";
                                    btnTrans.setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View view) {
                                            Toast.makeText(getApplicationContext(), R.string.hrvatski, Toast.LENGTH_LONG).show();
                                        }
                                    });
                                    break;
                                case 2:
                                    item = "lang2";
                                    btnTrans.setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View view) {
                                            Toast.makeText(getApplicationContext(), R.string.english, Toast.LENGTH_LONG).show();
                                        }
                                    });
                                    break;
                            }

                        }
                        //on selected save

                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> adapterView) {
                        //nothing selected "-"
                    }
                });



leelo
  • 1
  • Here is the link show how to get value from spinner https://stackoverflow.com/questions/5787809/get-spinner-selected-items-text – Hasan Khan Jan 06 '20 at 16:02
  • Does this answer your question? [Get spinner selected items text?](https://stackoverflow.com/questions/5787809/get-spinner-selected-items-text) – Emad Jan 06 '20 at 16:03
  • @hasanhasan it shows only how to get value from spinner. Ty for trying but as I said I don´t know a tiny bit about shared preferences so I would need a detailed explanation. I really want to learn actually:D I dont know where to declare what ... – leelo Jan 06 '20 at 16:31

1 Answers1

0

I am rep is less then 50 so I am posting link here for shared preference https://www.google.com/amp/s/www.geeksforgeeks.org/shared-preferences-in-android-with-examples/amp/

Get your Lang from spinner and store value in share preference.

Hasan Khan
  • 554
  • 1
  • 7
  • 23