2016-08-13 75 views
0

我想創建一個應用程序,將給我的價值 Spinner1/Spinner2 *(Spinner3 * 8) 但是,弄清楚如何爲我的紡紗機中的物品賦值。請幫助我:我怎樣才能添加「隱藏」的值到微調不同的項目[Android]

我對此很新,所以如果我更改太多的話,我害怕搞亂代碼。

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) { 
} 
} 
+0

http://stackoverflow.com/questions/1625249/android-how-to-bind-spinner-to-custom-object-list檢查這個 – user5599807

+0

我檢查了該線程,但說實話我沒有真正看到我如何將它應用於我的代碼 – Djengiss

回答

0

好了,所以有興趣的人,我理解了它,我結束了創建列表作爲整數和雙打,而不是像這樣:

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

然後我通過轉換列表,以縮短代碼循環,而不是像這樣:

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

,這樣使得代碼更短很多

最後,獲得實際的計算,我分配變量整數這樣的:

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); 

,並讓他們計算的話是這樣的:

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

,所以我希望,如果有人可以使用這個他們自己也有同樣的問題!

相關問題