一直试图使用ToggleButton
作为我的应用程序中的书签类事物。我第一次使用这个。我宣布我的切换按钮onCreateView()
如下下:安卓切换按钮状态始终为真
bmark = (ToggleButton) v.findViewById(R.id.bmark);
bmark.setChecked(false);
我想只是将状态切换并显示Toast
消息!我试过如下:
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
bmark.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean status;
if (bmark.isChecked()) status = true;
else status = false;
Log.w("Bmark status",String.valueOf(status));
if (status) {
bmark.setChecked(false);
Log.w("Bmark after true",String.valueOf(bmark.isChecked()));
Toast.makeText(getActivity(), "Bookmark removed!", Toast.LENGTH_SHORT).show();
} else {
bmark.setChecked(true);
Log.w("Bmark after false",String.valueOf(bmark.isChecked()));
Toast.makeText(getActivity(), "Post Bookmarked..!", Toast.LENGTH_SHORT).show();
}
}
});
每次我按下按钮,状态最初读为“真”,虽然我已经把它设置为“假”。我打电话给setChecked(false)
后,它也变成了错误。但是当我再次点击它,它再次读取“真”,而不是“假”
我不知道为什么它发生这样的事情。我只是想在每次点击时切换它。请帮助我!感谢提前:)
FYI接受的答案是不是最佳的解决方案,因为它需要处理一个布尔标志保持状态轨道。 – earthw0rmjim
状态在答案是额外的,因为在原始代码,也许它在不同的地方使用,所以没有什么最佳或没有。 –
@MaciejSikora如果它是'onClick()'中的局部变量,它在不同的地方如何使用?你的评论没有任何意义。 – earthw0rmjim