java - Android 上的转换器应用程序错误

标签 java android eclipse

大家好,我正在制作一个从二进制转换为十进制的 Android 应用程序,我制作了一个名为 Binary 的类。和一个名为 Decimal 的类和 Binary 中的函数从十进制转换为二进制的类

public Binary DtoB(Decimal decimal)
{
    String temp = null;
    do
    {
        if(decimal.decimal%2!=0)
            temp+='1';
        else
            temp+='0';
        decimal.decimal/=2;
    }while(decimal.decimal>0);
    while(temp.length()%4!=0)
        temp+='0';

    for(int i=temp.length()-1;i>=0;i--)
    {
        this.bn+=temp.charAt(i);
    }
    return this;
}

在 Activity 中有一个可以转换的按钮,但是当我测试并按下该按钮时,应用程序崩溃了

b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            d1.decimal=Integer.parseInt(e1.getText().toString());
            b.DtoB(d1);
            t1.setText(b.bn);
        }
    });

谁能帮帮我吗???

这是日志猫:

10-26 09:16:15.831: E/AndroidRuntime(280): FATAL EXCEPTION: main 
10-26 09:16:15.831: E/AndroidRuntime(280): java.lang.NullPointerException 
10-26 09:16:15.831: E/AndroidRuntime(280): at com.example.converter.MainActivity$1.onClick(MainActivity.java:34) 
10-26 09:16:15.831: E/AndroidRuntime(280): at android.view.View.performClick(View.java:2408) 
10-26 09:16:15.831: E/AndroidRuntime(280): at android.view.View$PerformClick.run(View.java:8816) 
10-26 09:16:15.831: E/AndroidRuntime(280): at android.os.Handler.handleCallback(Handler.java:587)
10-26 09:16:15.831: E/AndroidRuntime(280): at android.os.Handler.dispatchMessage(Handler.java:92) 
10-26 09:16:15.831: E/AndroidRuntime(280): at android.os.Looper.loop(Looper.java:123) 10-26 09:16:15.831: E/AndroidRuntime(280): at android.app.ActivityThread.main(ActivityThread.java:4627) 
10-26 09:16:15.831: E/AndroidRuntime(280): at java.lang.reflect.Method.invokeNative(Native Method) 10-26 09:16:15.831: E/AndroidRuntime(280): at java.lang.reflect.Method.invoke(Method.java:521) 

最佳答案

Try this...!

public class BinaryToDecimal {

        public int getDecimalFromBinary(int binary){

            int decimal = 0;
            int power = 0;
            while(true){
                if(binary == 0){
                    break;
                } else {
                    int tmp = binary%10;
                    decimal += tmp*Math.pow(2, power);
                    binary = binary/10;
                    power++;
                }
            }
            return decimal;
        }

        public static void main(String a[]){
            BinaryToDecimal bd = new BinaryToDecimal();
            System.out.println("11 ===> "+bd.getDecimalFromBinary(11));
            System.out.println("110 ===> "+bd.getDecimalFromBinary(110));
            System.out.println("100110 ===> "+bd.getDecimalFromBinary(100110));
        }
    }

关于java - Android 上的转换器应用程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26570645/

相关文章:

java - 当我在每次交替运行的选项卡式 Activity 中按下按钮时,我的应用程序崩溃了

java - Android createChooser出现在Activity前面

java - 发送短信时Android所有变量都会重置

java - 如何检查用户是否使用 Android 浏览器?

Android:错误:R 无法解析为变量

c++ - Eclipse C++ 包括来 self 的源文件夹的头文件

eclipse - 项目 ""的目标位置已存在,无法移动项目

c# - 我们应该为新项目选择 Java 而不是 C# 吗?

java - 如何将对象添加到未参数化的 Java 列表?

java - 如何使用 eclipse 3.6(helios) 运行 jBoss AS 7?