为什么按下按钮会在打开选项菜单时丢失它的状态?
我做了一个示例活动,以明确说明:
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的实现不具备此行为并且需要使用切换按钮?
答案 0 :(得分:0)
public class MainActivity extends Activity {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn; = (Button) findViewById(R.id.button1);
btn.setPressed(true); // set the state
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
//here you can set your state....
btn. //set the state...
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings)
return true;
return super.onOptionsItemSelected(item);
}
}