1

我面临的是,每当我按下转换按钮将英里转换为公里时,什么都没有发生。

我有 3 个活动:第一个屏幕的一个活动(包含 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 并在公里编辑文本框中显示该值。代码中没有错误,但是当我尝试测试它时,通过在英里编辑文本字段中输入一个数字,如果我按下转换,它会给我一个错误“不幸的是,转换器已停止”。我不知道我做错了什么。

4

1 回答 1

0

就像建议的那样,您应该查看错误日志。我猜你在某处得到了一个空指针异常。

要获得完整的答案,我们还需要知道您的布局文件。您引用的所有视图都存在吗?

我在您的代码中找不到错误。事实上,如果我用一个简单的 toast 消息替换 onClickListener 内容,我确实得到了 toast。尝试使用下面的代码段。

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

        });
于 2013-05-22T18:46:45.660 回答