Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.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 Android二进制转换器故障_Java_Android_Textview - Fatal编程技术网

Java Android二进制转换器故障

Java Android二进制转换器故障,java,android,textview,Java,Android,Textview,你好 我刚刚完成我的第一个应用程序,我遇到了一个小问题,至少可以说它符合刚刚好,但当我按下回车键并点击文本到二进制时,它变得疯狂,我已经把问题缩小到 textview1.setText(binary); 如果我的代码有点马虎,我们将非常感谢您的帮助,这是我需要处理的许多事情之一 import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button

你好 我刚刚完成我的第一个应用程序,我遇到了一个小问题,至少可以说它符合刚刚好,但当我按下回车键并点击文本到二进制时,它变得疯狂,我已经把问题缩小到

textview1.setText(binary);
如果我的代码有点马虎,我们将非常感谢您的帮助,这是我需要处理的许多事情之一

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;

public class Binary extends Activity {

    Button b1 ;
    EditText edittext;
    RadioButton rad1, rad2;
    TextView textview1 ;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        edittext = (EditText) findViewById(R.id.edittext);
        rad1 = (RadioButton) findViewById(R.id.rad1);
        rad2 = (RadioButton) findViewById(R.id.rad2);
           }


    public void onClick(View v) 
    {
        if(rad1.isChecked())
           {
               String s1 = edittext.getText().toString();
               byte[] bytes = s1.getBytes();
               StringBuilder binary = new StringBuilder();
               for (byte b : bytes)
                  {
                     int val = b;
                     for (int i = 0; i < 8; i++)
                     {
                        binary.append((val & 128) == 0 ? 0 : 1);
                        val <<= 1;
                     }
                     binary.append(' ');
                  }

                textview1.setText(binary);


            }
        }
    }

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget92"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<EditText
android:id="@+id/edittext"
android:layout_width="264px"
android:layout_height="57px"
android:textSize="18sp"
android:autoText="true"
android:layout_x="30px"
android:layout_y="36px"
>
</EditText>
<RadioGroup
android:id="@+id/rg1"
android:layout_width="260px"
android:layout_height="42px"
android:orientation="horizontal"
android:layout_x="33px"
android:layout_y="116px"
>
<RadioButton
android:id="@+id/rad1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text to Binary"
>
</RadioButton>
<RadioButton
android:id="@+id/rad2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Binary to Text"
>
</RadioButton>
</RadioGroup>
<Button
android:id="@+id/b1"
android:layout_width="142px"
android:layout_height="55px"
android:text="Enter"
android:textSize="20sp"
android:textStyle="bold"
android:layout_x="85px"
android:layout_y="208px"
android:onClick="onClick"
>
</Button>
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="20sp"
android:layout_x="115px"
android:layout_y="288px"
>
</TextView>
</AbsoluteLayout>
应该是

int val = b - '0'; // Character.getNumericValue(b);

注:0的ASCII值为48英寸十进制。所以0到9是48到57。因此,您需要从值介于48和57之间(含48和57)的字节中减去48,即“0”。

您可以先发布错误消息或日志。您能否更具体地说明您的问题,而不是它变得疯狂?它会告诉我应用程序意外停止。ty您能否向我解释为什么它的int val=b-“0”@user705282:0的ascii值为48。所以0到9是48到57。所以你需要从值在48到57之间的字节中减去48,也就是“0”。
int val = b - '0'; // Character.getNumericValue(b);