1

私が直面しているのは、実際にマイルをキロメートルに変換するために変換ボタンを押すたびに、何も起こらないということです。

私は 3 つのアクティビティを持っています: 最初の画面の 1 つのアクティビティ (ユーザーを長さページまたは重量ページに移動させる 2 つのボタンが含まれています)、および他の 2 つは長さと重量のアクティビティです。

したがって、長さのアクティビティに移動する最初のボタンが機能しています。うまくいかないのは、何をしても変換ボタンが機能しないことです。これが私が話しているコードです:

package com.abhinavbhatta.converter;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class ConvertLength extends Activity {
    Button clength;
    EditText mi;
    EditText km;
    TextView tv_mi;
    TextView tv_km;
    double milesValue;
    double kmValue;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_convert_length);

    clength = (Button) findViewById(R.id.clength);

    mi = (EditText) findViewById(R.id.et_mi);
    km = (EditText) findViewById(R.id.et_km);

    tv_mi = (TextView) findViewById(R.id.tv_mi);
    tv_km = (TextView) findViewById(R.id.tv_km);

    clength.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        milesValue = Double.parseDouble(mi.getText().toString());
        kmValue = milesValue * 1.6;
        String mValue = Double.toString(kmValue);
        km.setText(mValue);     
        }

    });     

}

public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.convert_length, menu);
    return true;
}

}

ユーザーがマイル編集テキスト ボックスに何を入力しても、その値を取得し、1.6 を掛けてキロメートル編集テキスト ボックスに表示する必要があります。コードにエラーはありませんが、マイルの edittext フィールドに数値を入力してテストしようとすると、「残念ながら、コンバーターが停止しました」というエラーが表示されます。何が間違っているのかわかりません。

4

1 に答える 1

0

提案されたように、エラーログを調べる必要があります。どこかで nullpointer 例外が発生したと思います。

完全な回答を得るには、レイアウト ファイルも知っておく必要があります。参照するすべてのビューが存在しますか?

コードにエラーが見つかりません。実際、onClickListener コンテンツを単純なトースト メッセージに置き換えると、トーストが表示されます。以下のスニペットを試してみてください。

        clength.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_LONG).show();
            }

        });
于 2013-05-22T18:46:45.660 に答える