Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在计算中调用微调器值时应用程序崩溃?_Java_Android_Math_Spinner - Fatal编程技术网

Java 在计算中调用微调器值时应用程序崩溃?

Java 在计算中调用微调器值时应用程序崩溃?,java,android,math,spinner,Java,Android,Math,Spinner,} 我知道doCalculation方法实际上还没有计算任何东西,因为应用程序只是因为试图获取输入值而崩溃。如果我禁用cinput5行,它可以正常工作。我做错了什么?请注意,如何将微调器的值转换为字符串以用于计算 另外,作为双重检查。。。微调器显示一个数字列表(1.4、2、2.8、4、5.6等),选择哪个数字就是我需要在计算中使用的数字。我正在从微调器调用正确的值,对吗 我为可能非常明显的错误道歉。我刚开始使用Java,在我完成这个应用程序后,我保证我会得到一本书 您两次声明aperture,一

}

我知道doCalculation方法实际上还没有计算任何东西,因为应用程序只是因为试图获取输入值而崩溃。如果我禁用cinput5行,它可以正常工作。我做错了什么?请注意,如何将微调器的值转换为字符串以用于计算

另外,作为双重检查。。。微调器显示一个数字列表(1.4、2、2.8、4、5.6等),选择哪个数字就是我需要在计算中使用的数字。我正在从微调器调用正确的值,对吗


我为可能非常明显的错误道歉。我刚开始使用Java,在我完成这个应用程序后,我保证我会得到一本书

您两次声明
aperture
,一次在代码开头,另一次在
onCreate
方法中

在这方面:

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import android.widget.TextView;

public class calctest extends Activity {
/** Called when the activity is first created. */
private EditText input; 
private EditText input2; 
private EditText input3; 
private EditText input4;
private TextView output;
private TextView output2;
private Spinner aperture;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

 // Extract the text fields from the XML layout 
    input = (EditText) findViewById(R.id.input1); 
    input2 = (EditText) findViewById(R.id.input2);
    input3 = (EditText) findViewById(R.id.input3); 
    input4 = (EditText) findViewById(R.id.input4);
    output = (TextView) findViewById(R.id.result); 
    output2 = (TextView) findViewById(R.id.result2);

    //aperture dropdown
    final Spinner aperture = (Spinner) findViewById(R.id.apt);
    ArrayAdapter adapter = ArrayAdapter.createFromResource(
    this, R.array.apertures, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    aperture.setAdapter(adapter);

    Spinner mode = (Spinner) findViewById(R.id.mode);
    ArrayAdapter adapter2 = ArrayAdapter.createFromResource(
    this, R.array.formats, android.R.layout.simple_spinner_item);
    adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    mode.setAdapter(adapter2);

    // Perform calculation when button is pushed

    final Button button = (Button) findViewById(R.id.calculate);
    button.setOnClickListener(new View.OnClickListener() {             
        public void onClick(View v) {                 
            doCalculation(aperture.getSelectedItem());
                }         
            });
        }


private void doCalculation(Object selectedItem) { 
    // Get entered input value 
    String cinput1 = input.getText().toString(); 
    String cinput2 = input2.getText().toString();
    String cinput3 = input3.getText().toString(); 
    String cinput4 = input4.getText().toString();
    Object cinput5 = aperture.getSelectedItem();
}
尝试卸下
最终微调器

当应用程序到达doCalculation方法的最后一行时,它很可能抛出空对象引用,因为它引用的是尚未实例化的private aperture实例

final Spinner aperture = (Spinner) findViewById(R.id.apt);