0

from currencyフィールドに金額を入力し、スピナーとto currency別のスピナーでを選択して、USD、GBP、およびユーロから単純な通貨コンバーターを作成しようとしています。次に、変換された金額をテキストフィールドに出力します。

しかし、どういうわけか私はその方法を乗り越えることができず、その理由onClickもわかりません。簡単なことかもしれませんが、見えません。

これが私のコードです:

 public class Calculate extends Activity implements OnItemSelectedListener,
    OnClickListener {

Button Calculate;
String stringAmount;
double exchangeRate, E, D, Answer;
EditText Amount;
Spinner spinner, spinner1;
int ConvertFrom, ConvertTo;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.calculate);
    Initilise();
    // this is calling the method initilise.
    // listens for the button to be clicked
    Calculate.setOnClickListener(this);

}

private void Initilise() {
    // Method initilise.
    /* Button */Calculate = (Button) findViewById(R.id.cal);
    /* EditText */Amount = (EditText) findViewById(R.id.amount);
    spinner = (Spinner) findViewById(R.id.Currency);
    spinner1 = (Spinner) findViewById(R.id.Currency1);

}

public void format() {

    ConvertFrom = 0;
    ConvertTo = 0;

    stringAmount = Amount.getText().toString();
    E = 0; // set it to 0 as the default
    try {
        E = Integer.parseInt(stringAmount);
    } catch (NumberFormatException e) {

    }
}

@SuppressWarnings("deprecation")
@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    spinner();
    switch (v.getId()) {
    case R.id.cal:

        if (ConvertFrom == 0) {

            FromEuro();
        } else if (ConvertFrom == 1) {

            FromUsd();
        } else if (ConvertFrom == 2) {

            FromGbp();
        } else {
            // Amount.setText("Invalid Input");
            AlertDialog alertDialog = new AlertDialog.Builder(this)
                    .create();
            alertDialog.setTitle("Input");
            alertDialog.setMessage("Please Input a amount");
            alertDialog.setButton("OK",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog,
                                int which) {
                            // here you can add functions

                        }
                    });
            alertDialog.setIcon(R.drawable.ic_launcher);
            alertDialog.show();

        }
    }
}

public void spinner() {

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, R.array.Currencies);

    spinner = (Spinner) findViewById(R.id.Currency);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(this);

    spinner1 = (Spinner) findViewById(R.id.Currency1);
    spinner1.setAdapter(adapter);
    spinner1.setOnItemSelectedListener(this);
}

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    int posistion = spinner.getSelectedItemPosition();
    ConvertFrom = posistion;
    int posistion1 = spinner1.getSelectedItemPosition();
    ConvertTo = posistion1;
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}

@SuppressWarnings("deprecation")
private void FromEuro() {
    // TODO Auto-generated method stub
    if (ConvertTo == 1) {
        exchangeRate = 1.336891;
        Answer = E * exchangeRate;
        String Final = Double.toString(Answer);
        Amount.setText(Final);

    } else if (ConvertTo == 2) {
        exchangeRate = 1.336891;
        Answer = E * exchangeRate;
        String Final = Double.toString(Answer);
        Amount.setText(Final);

    } else if (ConvertTo == 0) {
        AlertDialog alertDialog = new AlertDialog.Builder(null).create();
        alertDialog.setTitle("Input");
        alertDialog.setMessage("Please Select a gender");
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // here you can add functions

            }
        });
        alertDialog.setIcon(R.drawable.ic_launcher);
        alertDialog.show();
    }
}

@SuppressWarnings("deprecation")
private void FromUsd() {
    // TODO Auto-generated method stub
    if (ConvertTo == 0) {
        exchangeRate = 1.336891;
        Answer = E * exchangeRate;
        String Final = Double.toString(Answer);
        Amount.setText(Final);

    } else if (ConvertTo == 1) {
        exchangeRate = 1.336891;
        Answer = E * exchangeRate;
        String Final = Double.toString(Answer);
        Amount.setText(Final);

    } else {
        if (ConvertTo == 2) {
            AlertDialog alertDialog = new AlertDialog.Builder(null)
                    .create();
            alertDialog.setTitle("Input");
            alertDialog.setMessage("Please Select a gender");
            alertDialog.setButton("OK",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog,
                                int which) {
                            // here you can add functions

                        }
                    });
            alertDialog.setIcon(R.drawable.ic_launcher);
            alertDialog.show();
        }
    }
}

private void FromGbp() {
    // TODO Auto-generated method stub
    if (ConvertTo == 2) {
        exchangeRate = 1.336891;
        Answer = E * exchangeRate;
        String Final = Double.toString(Answer);
        Amount.setText(Final);

    } else if (ConvertTo == 0) {
        exchangeRate = 1.336891;
        Answer = E * exchangeRate;
        String Final = Double.toString(Answer);
        Amount.setText(Final);

    } else {
        if (ConvertTo == 1) {
            Builder alertDialog = new AlertDialog.Builder(this);
            alertDialog.setTitle("Input");
            alertDialog.setMessage("Please Select a gender");
            alertDialog.setPositiveButton("OK",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog,
                                int which) {
                            // here you can add functions

                        }
                    });
            alertDialog.setIcon(R.drawable.ic_launcher);
            alertDialog.show();
        }
    }
}`

}

しかし、私は今受け取っています

02-19 16:55:01.514:E / AndroidRuntime(28638):android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:142)

上記のエラー。


以前、この質問には次のエラーがありました。

誰かが助けることができるかどうか疑問に思います。これらのエラーが発生します:

FATAL EXCEPTION: main
    java.lang.NullPointerException
    at com.travelcurrencyconverter.Calculate.onClick(Calculate.java:64)
    at android.view.View.performClick(View.java:4222)
    at android.view.View$PerformClick.run(View.java:17273)
    at android.os.Handler.handleCallback(Handler.java:615)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4895)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
    at dalvik.system.NativeStart.main(Native Method)
4

1 に答える 1

1

null64行目にある参照のメンバー(ドットの前の部分)にアクセスしようとしています。

また、コードを投稿するときは、すべてのコードを4つのスペースでインデントして、すべての構文に色を付けます。

また、その前に、IDEでコードを自動フォーマットしてください。

于 2013-02-19T13:09:09.780 に答える