,所以这是我的第一个不遵循教程的应用程序。我已经得到了XML的所有布置,Spinner下拉台上工作也是第一个通过EditText编号完成的计算工作。我现在想使用这个第一个计算的答案以及一个旋转器选定值之一进行下一个计算这是我的XML
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<EditText
android:id="@+id/inside"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_weight="1"
android:ems="10"
android:inputType="number"
android:gravity="center" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="Inside Ø n(mm)"
android:textSize="16dp" />
</LinearLayout>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginTop="16dp"
android:background="@android:color/darker_gray" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<EditText
android:id="@+id/outside"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_weight="1"
android:ems="10"
android:inputType="number"
android:gravity="center" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="Outside Ø n(mm)"
android:textSize="16dp" />
</LinearLayout>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginTop="16dp"
android:background="@android:color/darker_gray" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<EditText
android:id="@+id/coils"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_weight="1"
android:ems="10"
android:inputType="number"
android:gravity="center"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="Number of Coils"
android:textSize="16dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<Spinner
android:id="@+id/thickness"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:layout_weight="1"
android:background="@android:drawable/btn_dropdown"
android:spinnerMode="dropdown" />
<Spinner
android:id="@+id/width"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_weight="1"
android:background="@android:drawable/btn_dropdown"
android:spinnerMode="dropdown" />
</LinearLayout>
<Button
android:id="@+id/bt_calculate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:onClick="calculate"
android:text="Calculate" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="24dp">
<TextView
android:id="@+id/result_m"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="24dp">
<TextView
android:id="@+id/result_kg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp">
<TextView
android:id="@+id/result_m2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
<Button
android:id="@+id/clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="24dp"
android:layout_gravity="center_horizontal"
android:onClick="clear"
android:text="Clear" />
这是代码
package com.example.android.engineerstoolbox;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import static com.example.android.engineerstoolbox.R.id.result_kg;
import static com.example.android.engineerstoolbox.R.id.result_m;
import static com.example.android.engineerstoolbox.R.id.result_m2;
public class CoilCalculator extends AppCompatActivity {
private EditText editText1;
private EditText editText2;
private EditText editText3;
private Spinner spinner1;
private Spinner spinner2;
private TextView resultM;
private TextView resultKG;
private TextView resultM2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_coil_calculator);
//set spinner1 for user input of available thickness
Spinner dropdown = (Spinner) findViewById(R.id.thickness);
String[] items = new String[]{"Thickness", "1.2", "1.5", "2", "2.5", "3", "4"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, items);
dropdown.setAdapter(adapter);
//set spinner2 for user input of available width
dropdown = (Spinner) findViewById(R.id.width);
items = new String[]{"Width", "1219", "1500", "1524"};
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, items);
dropdown.setAdapter(adapter);
editText1 = (EditText) findViewById(R.id.inside);
editText2 = (EditText) findViewById(R.id.outside);
editText3 = (EditText) findViewById(R.id.coils);
resultM = (TextView) findViewById(result_m);
resultKG = (TextView) findViewById(result_kg);
resultM2 = (TextView) findViewById(result_m2);
//Set button to do calculations
Button bt_calculate = (Button) findViewById(R.id.bt_calculate);
bt_calculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
makeCalculations();
}
});
//Set reset button to reset inputs
Button mButtonReset = (Button) findViewById(R.id.clear);
mButtonReset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
editText1.setText("");
editText2.setText("");
editText3.setText("");
resultM.setText("");
}
});
}
private void makeCalculations() {
double n1 = Double.valueOf(editText1.getText().toString());
double n2 = Double.valueOf(editText2.getText().toString());
double n3 = Double.valueOf(editText3.getText().toString());
//do the Lineal meter calculation
Double calculatedValue = ((((n1 + n2) / 2) * 3.141592654) * n3) / 1000;
double output = (double) Math.round(calculatedValue * 1000) / 1000;
//set the value to the textview, to display on screen.
resultM.setText(output + " Lineal Meters");
}
}
我知道我需要设置某种侦听器来拾取旋转器值。但是我不确定哪里,到目前为止,我还没有在这里找到一个问题,可以解释将代码放在哪里。
下一个计算看起来像这样
Double calculatedValue2 = output * (value of spinner2/1000);
//set the value to the textview, to display on screen.
resultM2.setText(calculatedValue2 + " M²");
我很确定双重不是要走的方式,而是想显示下一个计算的东西
您实际上并未将Spinner1和Spinner2分配给Spinner对象。
//set spinner1 for user input of available thickness
spinner1 = (Spinner) findViewById(R.id.thickness);
String[] items = new String[]{"Thickness", "1.2", "1.5", "2", "2.5", "3", "4"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, items);
spinner1.setAdapter(adapter);
//set spinner2 for user input of available width
spinner2 = (Spinner) findViewById(R.id.width);
items = new String[]{"Width", "1219", "1500", "1524"};
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, items);
spinner2.setAdapter(adapter);
然后,当您要执行计算时,
String selectedItem = spinner2.getSelectedItem().toString();
double selectedValue = Double.parseDouble(selectedItem);
Double calculatedValue2 = output * (selectedValue/1000);
//set the value to the textview, to display on screen.
resultM2.setText(calculatedValue2 + " M²");
如果您想从旋转器中选择一个值时要调用侦听器,则应使用Spinner.setOnitemSelectedListener方法。您可以看到此帖子以获取更多信息。
SetonItemSelectedListener of Spinner不称呼
您只需要覆盖OnItemselected方法。