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