我想保存togglebutton的状态,以便在活动未激活时通过检查togglebutton的状态来运行服务。这是Activity类的编码。无论用户保存到togglebtn,服务都必须按此运行。
public class MainActivity extends Activity implements OnClickListener {
ToggleButton tgl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tgl=(ToggleButton)findViewById(R.id.toggleButton1);
tgl.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(tgl.isChecked()){
Intent i=new Intent(MainActivity.this,Run.class);
startService(i);
}else{
}
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
if(tgl.isChecked()){
tgl.setChecked(true);
}else{
}
super.onBackPressed();
}
}
答案 0 :(得分:1)
我建议将切换按钮的状态保持在首选项中,并在需要时检索它们(此处在背面按下)。我希望你从以下代码中得到一个想法:
保存:
@Override
public void onClick(View v)
{
if (toggle.isChecked())
{
SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit();
editor.putBoolean("NameOfThingToSave", true);
editor.commit();
}
else
{
SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit();
editor.putBoolean("NameOfThingToSave", false);
editor.commit();
}
}
加载:
@Override
protected void onCreate(Bundle savedInstanceState)
{
SharedPreferences sharedPrefs = getSharedPreferences("com.example.xyle", MODE_PRIVATE);
toggle.setChecked(sharedPrefs.getBoolean("NameOfThingToSave", true));
}
答案 1 :(得分:0)
在此任何用户保存togglebtn中,服务必须按此运行。
使用sharePreference商店& ToggleButton的反转状态,基于执行动作。
答案 2 :(得分:0)
您可以使用静态布尔变量来存储状态。
public class MainActivity extends Activity implements OnClickListener {
ToggleButton tgl;
private static boolean tglState = false;
public static boolean getState() {
return tglState;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tgl=(ToggleButton)findViewById(R.id.toggleButton1);
tgl.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(tgl.isChecked()){
Intent i=new Intent(MainActivity.this,Run.class);
startService(i);
}else{
}
tglState = tgl.isChecked();
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
if(tgl.isChecked()){
tgl.setChecked(true);
}else{
}
super.onBackPressed();
}
}
使用
从其他课程中阅读MainActivity.getState()
您可以在应用程序运行时使用它。