Search code examples
androidspinneroncreate

how to pass spinner selected value to onCreate() section in the same activity?


I want to make an app which collect data based on some Edittexts and two spinners. Then, by clicking a button show all String data in a TextView. I know it may be simple but I wonder how to get the selected Item in spinners and show them near the rest of values. '''

Spinner shift, permit;

EditText TextHere, TrainNumber, SignalPerson, NavganPerson, DriverPerson;

TextView BigText;

Button SaveButton;

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

    shift=(Spinner)findViewById(R.id.shift_spinner);
    permit=(Spinner)findViewById(R.id.permission_spinner);
    TextHere=(EditText)findViewById(R.id.text_here);
    TrainNumber=(EditText)findViewById(R.id.train_number);
    SignalPerson=(EditText)findViewById(R.id.signal_person);
    NavganPerson=(EditText)findViewById(R.id.navgan_person);
    DriverPerson=(EditText)findViewById(R.id.driver_person);
    SaveButton=(Button) findViewById(R.id.save_btn);
    BigText=(TextView)findViewById(R.id.text_text);

    ArrayAdapter ShiftSelect = ArrayAdapter.createFromResource(
            this,
            R.array.shifts,
            R.layout.support_simple_spinner_dropdown_item
    );
    shift.setAdapter(ShiftSelect);
    shift.setOnItemSelectedListener(this);

    ArrayAdapter PermissionSelect = ArrayAdapter.createFromResource(
            this,
            R.array.permissions,
            R.layout.support_simple_spinner_dropdown_item
    );
    permit.setAdapter(PermissionSelect);
    permit.setOnItemSelectedListener(this);

    final String TN = TrainNumber.getText().toString();

    final String TH = TextHere.getText().toString();

    final String SP = SignalPerson.getText().toString();

    final String NP = NavganPerson.getText().toString();

    final String DP = DriverPerson.getText().toString();

    SaveButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

}


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

    Spinner spinner = (Spinner) parent;

    if (spinner.getId()==R.id.shift_spinner){
        String SHIFT = parent.getSelectedItem().toString();
    }
    if (spinner.getId()==R.id.permission_spinner){
        String PER = parent.getSelectedItem().toString();
    }
}

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

'''

I want to pass Item that is selected from public void onItemSelected to onCreate method section to show it in a txetview. Thanks you.


Solution

  • Try this.

    TextView textView;
    Spinner spinner;
    String SEL_VALUE;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        spinner=(Spinner)findViewById(R.id.shift_spinner);
        textView=(TextView)findViewById(R.id.textView);
        SEL_VALUE="";
    
        // Create adapter here
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this);
    
    }
    
    
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    
        String sel_val = spinner.getSelectedItem().toString();
        // Setting selected value to textView.
        SEL_VALUE = sel_val;
        textView.setText(sel_val);
    
    }
    
    @Override
    public void onNothingSelected(AdapterView<?> parent) {
    }