在我的 android 应用程序中,我有一个播放按钮。在我手动单击按钮后,一切正常。但是当我使用 uiautomator 触发按钮点击时,什么也没发生。调试后,我很确定是字符串比较步骤(标记为卡在此处)导致失败。非常困惑为什么它的行为不同。我确实看到按钮以两种方式被点击(按钮颜色改变)。如果我使用 button.getText().toString(),两者都有效。顺便说一句,button.getText() 返回 CharSequence,而不是 String 对象。
我在 res/values/strings.xml 中将我的字符串值定义为
<string name="play">Play</string>
的java代码:
private final static String PLAY = "Play";
//some code in between
Button playButton = new Button(this);
playButton.setText(R.string.play);
playButton.setTextSize(BUTTON_FONT_SIZE);
playButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Button b = (Button) v;
if (b.getText().equals(PLAY)) { //stuck here.
startPlay();
} else {
stopPlay();
}
}
});