我正在尝试更改ACR1252U上的蜂鸣器持续时间.
链接至API:http: //www.acs.com.hk/download-manual/6402/API-ACR1252U-1.09.pdf
根据API文档,我需要'E0000028010A'命令来更改蜂鸣器状态,其中'0A'将持续时间标记为0A*10ms(页44).
使用以下Java代码:
public static void main(String[] args) {
try {
byte[] send = new byte[6];
send[0] = (byte) 0xE0; // Commandclass
send[1] = (byte) 0x00; // Protocoll
send[2] = (byte) 0x00; // Param 1
send[3] = (byte) 0x28; // Param 2: Buzzerstatus
send[4] = (byte) 0x01; // Change Flag
send[5] = (byte) 0x0A; // Duration: 0A*10ms => 100ms
Card card = getCard("DIRECT"); // Works!
CardChannel channel = card.getBasicChannel(); // Works!
CommandAPDU command = new CommandAPDU(send); …Run Code Online (Sandbox Code Playgroud) 我想以编程方式创建选择器可绘制对象。形状必须采用以下形式:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"><shape>
<solid android:color="#4aa5d4" />
</shape></item>
<item><shape>
<stroke android:width="1dp" android:color="#4aa5d4" />
</shape></item>
</selector>
Run Code Online (Sandbox Code Playgroud)
为什么?因为我希望这2种颜色可以改变。我知道我必须为此创建某种Drawable。我已经设法这样创建自己的GradientDrawables:
public GradientDrawable getBackgroundGradient() {
GradientDrawable gd = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[] { BACKGROUND_GRADIENT_TOP_COLOR, BACKGROUND_GRADIENT_BOTTOM_COLOR });
return gd;
}
Run Code Online (Sandbox Code Playgroud)
但是现在我需要一个SelectorDrawable。
是否可以强制重写方法来调用超类方法?构造函数总是需要调用它们的超类构造函数.但是我希望在普通方法上强制执行此操作,而不是在它被称为问题时的位置.
例:
public class A {
public void doSth() {
System.out.println("I must appear on console!");
}
}
public class B extends A {
@Override
public void doSth() {
System.out.println("Bla!"); // IDE should mark an error, because supermethod is not called.
}
}
Run Code Online (Sandbox Code Playgroud) 我使用SharedPreferences时遇到的问题很少.我想保存并稍后在首选项中加载字符串.我在onCreate方法中初始化我的prefs:
prefs = this.getSharedPreferences("com.example.android_test", Activity.MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)
我保存另一种方法:
public void saveUser()
{
prefs.edit().putString("username", username);
prefs.edit().putString("password", password);
prefs.edit().apply();
}
Run Code Online (Sandbox Code Playgroud)
并加载另一种方法:
public void loadUser()
{
username = prefs.getString("username", "default");
password = prefs.getString("password", "test");
}
Run Code Online (Sandbox Code Playgroud)
那些是我的测试方法:
public void showUser(View v)
{
loadUser();
text.setText(username);
}
public void addUser(View v)
{
changeUser(eingabe.getText().toString(),"newpass");
}
public void changeUser(String user, String pass)
{
username = user;
password = pass;
saveUser();
}
Run Code Online (Sandbox Code Playgroud)
用户名和密码是全局的,私有字符串,eingabe是EditText,文本是TextView.但是,当执行showUser()时,我只获得显示给TextView的defaultvalue,即使我使用带有不同用户名的saveUser ...没有崩溃或任何东西......它只是显示默认值...
java ×4
android ×2
apdu ×1
drawable ×1
eclipse ×1
inheritance ×1
pcsc ×1
smartcard ×1
superclass ×1