Java 是否在按下键时更新TextView?
我正在尝试更新显示系统卷的TextView。我已成功捕获当前系统卷并显示它,但当卷打开/关闭时它不会更新(显然) 我知道在某个地方有一个简单的解决办法,我就是想不出来!onKeyListeners 我现在正在使用这个,但它不起作用:Java 是否在按下键时更新TextView?,java,android,events,textview,keylistener,Java,Android,Events,Textview,Keylistener,我正在尝试更新显示系统卷的TextView。我已成功捕获当前系统卷并显示它,但当卷打开/关闭时它不会更新(显然) 我知道在某个地方有一个简单的解决办法,我就是想不出来!onKeyListeners 我现在正在使用这个,但它不起作用: TextView sysVol = (TextView)findViewById(R.id.systemVolume); sysVol.setOnKeyListener(new OnKeyListener() {
TextView sysVol = (TextView)findViewById(R.id.systemVolume);
sysVol.setOnKeyListener(new OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
//system volume
int curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
int i = curVolume * 4;
String aString = Integer.toString(i);
TextView sysVol = (TextView)findViewById(R.id.systemVolume);
sysVol.setText(aString);
return true;
}
return false;
}
});
那么,伪方法将是以下场景:
1) Attach a listener to the view
2) Filter the different events in the callback
3) Update the TextView upon the (event==volume_up OR event==volume_down)
基本上,您希望实现View.onKey()
-方法,使其成为道路上的小颠簸,而不是当前的路障状态
摘要:将以下代码段添加到代码中(需要进行一些修改)
publicYourClasshere扩展了一些很酷的实现OnKeyListener/*我认为问题在于,更改文本后,textview没有刷新。更改文本以刷新文本视图后,请尝试放置sysVol.requestLayout()
。另外,我不认为您应该在onKey()方法的结束括号后放置return false
。我有一些代码,上面的代码看起来像我需要的,但不起作用,有什么想法吗?我很有希望,但它不起作用。如果键不是vol up或down,则需要返回false如果调用invalidate()
?它应该强制重新绘制元素sysVol.invalidate()
是一种尝试方法。
public YourClassHere extends SomethingCool implements OnKeyListener /*<-- important part*/
{
public boolean onKey(View v) {
// do something when the selected button is pushed
return true;
}
}