2016-04-21 49 views
0

我这是用这个编码管理的多个按钮:获取按钮做一些事情的时候都检查

ToggleButton.OnCheckedChangeListener listener = new ToggleButton.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(CompoundButton v, boolean isChecked) { 
     int index; 
     for(index = 0; index < viewIds.length; index++) { 
      if (v.getId() == viewIds[index]) { 
       getSharedPreferences("PREFS_NAME", MODE_PRIVATE) 
         .edit() 
         .putBoolean(stringIds[index], isChecked) 
         .apply(); 

       break; 
      } 
     } 
    } 
}; 

我已经创建方法 scanButton(); 这样的:

private void scanButton() { 

    Button scan = (Button)findViewById(R.id.button_scan); 
    scan.setOnClickListener(new View.OnClickListener() { 

     @Override 
       public void onClick(View v) { 
      //here what will be done when button is clicked 
      Log.d(TAG, "Button \"SCAN\" is pressed"); 
      Toast.makeText(RandDActivity.this, "Scan pressed", Toast.LENGTH_LONG) 
        .show(); 

      //WHAT HERE 

     } 
    }); 


} 

现在问题:在这里放什么来获得只有那些isChecked with“true”状态的按钮才能执行某些操作?

+0

维护本地数据库 –

回答

0

首先,您需要查看用户是否已经检查了按钮,或者您没有检查该按钮是否可以加载已保存在onCheckedChanged()方法中的SharedPreferences,将其保存为布尔变量,然后放入一个条件像这样:

if(isChecked){ 
//do your stuff with the button 

} 

我假设isChecked是您刚刚使用从SharedPreferences获得的值设置的布尔变量。

+0

是的,但isChecked是侦听器的本地...除非我失去了一些东西。 – cheeroke

相关问题