【问题标题】:Button state change when opening option menu打开选项菜单时按钮状态更改
【发布时间】: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


【解决方案1】:
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);
    }
}

【讨论】:

    猜你喜欢
    • 2016-08-01
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多