Java 使用微调器更改图像并计算数学问题
我尝试的是在活动中使用微调器,具体取决于 在微调器选项列表中选择,更改活动的图像,并在不同情况下使用开关执行彼此不同的操作Java 使用微调器更改图像并计算数学问题,java,android,android-studio,spinner,Java,Android,Android Studio,Spinner,我尝试的是在活动中使用微调器,具体取决于 在微调器选项列表中选择,更改活动的图像,并在不同情况下使用开关执行彼此不同的操作 package com.example.liantonypozo.calculosmatematicos3; import android.content.Intent; import android.content.res.TypedArray; import android.support.v7.app.AppCompatActivity; import androi
package com.example.liantonypozo.calculosmatematicos3;
import android.content.Intent;
import android.content.res.TypedArray;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
public class AnguloReferencia extends AppCompatActivity {
EditText ar1;
TextView tex1 , tex2,tex3;
private String[] listOfObjects;
private TypedArray images;
private ImageView itemImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_angulo_referencia);
ar1 = (EditText)findViewById(R.id.anguloReferenciaEditText);
tex1 = (TextView) findViewById(R.id.anguloReferenciatext1);
tex2 = (TextView) findViewById(R.id.anguloReferenciatext2);
tex3 = (TextView) findViewById(R.id.anguloReferenciatext3);
listOfObjects = getResources().getStringArray(R.array.object_array);
images = getResources().obtainTypedArray(R.array.object_image);
itemImage = (ImageView)findViewById(R.id.imageviewar);
final Spinner spinner = (Spinner)findViewById(R.id.spinnerar);
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_spinner_item, listOfObjects);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
itemImage.setImageResource(images.getResourceId(spinner.getSelectedItemPosition(), -1));
double ar_1 = Double.parseDouble(ar1.getText().toString());
switch (position) {
case 0 :
tex1.setText("AR=180˚- AC");
tex2.setText("AR=180˚-" + ar_1 + "˚");
//double resu = 180 - ar1;
//double ar = Double.valueOf(resu);
//tex3.setText("AR=" + ar + "˚");
break;
default:
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
/* Button button = (Button)findViewById(R.id.pasosAnguloReferencia);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext() , HipotenusaEjemplo.class);
startActivityForResult(intent ,0);
}
});*/
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/* public void calcular4 (View v){
double ar_1 = Double.parseDouble(ar1.getText().toString());
tex1.setText("AR=180˚- AC");
tex2.setText("AR=180˚-"+ar_1+"˚");
double resu = (180 - ar_1) ;
double ar= Double.valueOf(resu);
tex3.setText("AR="+ ar +"˚");
}*/
}
现在它起作用了
switch (position) {
case 0 :
break;
case 1 :
if (!(ar1.getText().toString()).isEmpty()){
double ar_1 = Double.parseDouble(ar1.getText().toString ());
tex1.setText("AR=180˚- AC");
tex2.setText("AR=180˚-" + ar_1 + "˚");
double resu = 180 - ar_1;
double ar = Double.valueOf(resu);
tex3.setText("AR=" + ar + "˚");
}
这一行中的问题是,只需检查字符串是否为空,然后将其转换为double-double-ar_1=double.parseDouble(ar1.getText().toString());字符串为空,因为它接受的edittext的值没有指定值。好的,您解决了吗?@user7790438我仍然有相同的问题。\ux。好的,那么get text将始终获得此错误。请使用更多信息进行编辑。不鼓励只编写代码和“试试这个”答案,因为它们不包含可搜索的内容,也不解释为什么有人应该“试试这个”。我们在这里努力成为知识资源。@abarisone请检查问题和评论。
switch (position) {
case 0 :
break;
case 1 :
if (!(ar1.getText().toString()).isEmpty()){
double ar_1 = Double.parseDouble(ar1.getText().toString ());
tex1.setText("AR=180˚- AC");
tex2.setText("AR=180˚-" + ar_1 + "˚");
double resu = 180 - ar_1;
double ar = Double.valueOf(resu);
tex3.setText("AR=" + ar + "˚");
}
if(!(ar1.getText().toString()).isEmpty())){
double ar_1 = Double.parseDouble(ar1.getText().toString());
}