【发布时间】:2015-03-17 09:56:30
【问题描述】:
为什么一个被按下的按钮在打开选项菜单时会失去它的状态?
我做了一个示例活动来说明清楚:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button1);
btn.setPressed(true); // set the state
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings)
return true;
return super.onOptionsItemSelected(item);
}
}
我们将视图中的按钮设置为按下状态。 当您运行项目然后打开选项菜单时,按下状态消失了。看起来按钮已经移除了它的状态。
在不重绘整个活动的情况下保持按钮状态的解决方案/解决方法是什么?也许 Button 的实现不具备这种行为,需要使用切换按钮?
【问题讨论】:
-
菜单按钮只有在点击后才能获得焦点。当点击被释放时,它会失去焦点。
标签: android button android-activity android-ui