gpt4 book ai didi

android - 如何在 Android 的 Edittext 对话框中输入字节数组

转载 作者:行者123 更新时间:2023-11-30 02:45:50 25 4
gpt4 key购买 nike

最近几天我一直在尝试实现一个 Edittext 对话框,用户在其中引入一个 8 位数组(1 或 0),然后应用程序会将这个位数组转换为十进制和十六进制值(如果它是 11111111将是 dec=255 和 hex=0xFF),但我不知道如何实现这种情况。如果无法以这种方式实现,也可以代替位输入,它可以是 int/decimal 输入。

这是我为显示 Edittext 对话框而实现的代码:

else if (uuid.equals(BleDefinedUUIDs.Characteristic.PASSWORD)){
final EditText passtext = new EditText(v.getContext());
new AlertDialog.Builder(v.getContext())
.setTitle("Password Modification")
.setMessage("Please, introduce the new 8-bit password (with 1 or 0):")
.setView(passtext)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {

// Code to obtain the the bit array/int from the edittext box
}

})
.show();
}

有人知道如何实现吗?

最佳答案

以下是您如何实现此功能的示例。我使用了您的代码并稍作修改。

主 Activity .java

package com.example.test;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.InputType;
import android.text.method.DigitsKeyListener;
import android.util.Log;
import android.widget.EditText;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

final EditText passtext = new EditText(this);

// Set the length to 8 characters
passtext.setFilters(new InputFilter[] { new InputFilter.LengthFilter(8) });

// Set the keypad to numeric
passtext.setInputType(InputType.TYPE_CLASS_NUMBER);

// Only allow the user to enter 0 and 1 numbers
passtext.setKeyListener(DigitsKeyListener.getInstance("01"));

new AlertDialog.Builder(this).setTitle("Password Modification").setMessage("Please, introduce the new 8-bit password (with 1 or 0):").setView(passtext).setPositiveButton("OK", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {

String binaryDigits = passtext.getText().toString().trim();

if (binaryDigits != null && !binaryDigits.isEmpty()) {

// Convert the entered digits to decimal
int decimalValue = Integer.parseInt(binaryDigits, 2);

// Convert the entered digits to hex
String hex = Integer.toHexString(decimalValue);

Log.d(MainActivity.class.getSimpleName(), "Decimal: " + decimalValue);
Log.d(MainActivity.class.getSimpleName(), "Hex: " + hex);
}
}

}).show();
}
}

关于android - 如何在 Android 的 Edittext 对话框中输入字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25062683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com