0

I am trying to create an app that will give me the value of Spinner1 / Spinner2 * (Spinner3 * 8) However, I can't figure out how to assign values to the items in my spinners. Please Help me:

I am pretty new to this, so I am afraid of messing up the code if i change it too much.

package com.example.test.fmpu;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

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

public class MainActivity extends AppCompatActivity implements 
AdapterView.OnItemSelectedListener {

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

    // Spinner Element
    Spinner spinner = (Spinner)findViewById(R.id.speedspin);
    Spinner spinner2 = (Spinner)findViewById(R.id.tilespin);
    Spinner spinner3 = (Spinner)findViewById(R.id.boxspin);

    // Spinner click listener
    spinner.setOnItemSelectedListener(this);
    spinner2.setOnItemSelectedListener(this);
    spinner3.setOnItemSelectedListener(this);

    // Speed spinner drop down elements
    List<String> speed = new ArrayList<>();
    speed.add("0.5 m/s");
    speed.add("1.0 m/s");
    speed.add("1.5 m/s");
    speed.add("2.0 m/s");
    speed.add("2.5 m/s");
    speed.add("3.0 m/s");
    speed.add("3.5 m/s");
    speed.add("4.0 m/s");
    speed.add("4.5 m/s");

    // Tile spinner drop down elements
    List<String> tile = new ArrayList<>();
    tile.add("16 fliser");
    tile.add("18 fliser");
    tile.add("20 fliser");
    tile.add("22 fliser");
    tile.add("24 fliser");

    // Box spinner drop down elements
    List<String> box = new ArrayList<>();
    box.add("1 kasser");
    box.add("2 kasser");
    box.add("3 kasser");
    box.add("4 kasser");
    box.add("5 kasser");
    box.add("6 kasser");
    box.add("7 kasser");
    box.add("8 kasser");
    box.add("9 kasser");
    box.add("10 kasser");
    box.add("11 kasser");
    box.add("12 kasser");
    box.add("13 kasser");
    box.add("14 kasser");
    box.add("15 kasser");
    box.add("16 kasser");
    box.add("17 kasser");
    box.add("18 kasser");
    box.add("19 kasser");
    box.add("20 kasser");
    box.add("21 kasser");
    box.add("22 kasser");
    box.add("23 kasser");
    box.add("24 kasser");
    box.add("25 kasser");
    box.add("26 kasser");
    box.add("27 kasser");
    box.add("28 kasser");
    box.add("29 kasser");
    box.add("30 kasser");
    box.add("31 kasser");
    box.add("32 kasser");
    box.add("33 kasser");
    box.add("34 kasser");
    box.add("35 kasser");
    box.add("36 kasser");
    box.add("37 kasser");
    box.add("38 kasser");
    box.add("39 kasser");
    box.add("40 kasser");

    // Adapter for spinner
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, speed);
    ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, tile);
    ArrayAdapter<String> dataAdapter3 = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, box);

    // Drop down layout style - list view
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    dataAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // Attaching data adapter to spinner
    spinner.setAdapter(dataAdapter);
    spinner2.setAdapter(dataAdapter2);
    spinner3.setAdapter(dataAdapter3);
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    // On selecting a spinner item
    String item = parent.getItemAtPosition(position).toString();

    // Showing selected spinner item
    Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_SHORT).show();

}
public void onNothingSelected(AdapterView<?> arg0) {
}
}
Krishna Kachhela
  • 773
  • 1
  • 7
  • 24
Djengiss
  • 1
  • 2

1 Answers1

0

Ok, so anyone interested, i figured it out, i ended up creating the lists as integers and doubles instead, like this:

List<Integer> tile = new ArrayList<>();

Then i shortened the code by converting the lists to for loops instead, like this:

for (int i2=16; i2 <= 24; i2+=2)
{
    tile.add(i2);
}

so that made the code alot shorter

and finally, to get the actual calculation, i assigned variables to the integers like this:

    int kasser = Integer.parseInt(spinner3.getSelectedItem().toString());
    int fliser = Integer.parseInt(spinner2.getSelectedItem().toString());
    double fart = Double.parseDouble(spinner.getSelectedItem().toString());
    double resultat = kasser * fliser / (fart * 8);

and had them calculate it like this:

DecimalFormat resultatFormat = new DecimalFormat("#.00");
result.setText(resultatFormat.format(resultat));

so i hope someone can use this if they have the same problem themselves!

Djengiss
  • 1
  • 2