繁体   English   中英

使用微调器更改图像并计算数学问题

[英]Change image with spinner and calculate mathematical problems

我尝试的是在活动中使用微调器,具体取决于微调器列表中的选择选项,更改活动的图像,并在不同情况下使用开关执行彼此不同的操作

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 +"˚");



}*/
}

但是,当我运行该应用程序时,出现以下错误...

    --------- beginning of crash
04-06 21:35:58.564 3128-3128/com.example.liantonypozo.calculosmatematicos3 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                             Process: com.example.liantonypozo.calculosmatematicos3, PID: 3128
                                                                                             java.lang.NumberFormatException: empty String
                                                                                                 at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1071)
                                                                                                 at java.lang.Double.parseDouble(Double.java:547)
                                                                                                 at com.example.liantonypozo.calculosmatematicos3.AnguloReferencia$1.onItemSelected(AnguloReferencia.java:69)
                                                                                                 at android.widget.AdapterView.fireOnSelected(AdapterView.java:931)
                                                                                                 at android.widget.AdapterView.dispatchOnItemSelected(AdapterView.java:920)
                                                                                                 at android.widget.AdapterView.-wrap1(AdapterView.java)
                                                                                                 at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:890)
                                                                                                 at android.os.Handler.handleCallback(Handler.java:751)
                                                                                                 at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                                 at android.os.Looper.loop(Looper.java:154)
                                                                                                 at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

现在可以了

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM