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);