2016-02-13 158 views
0

我有一个保存buttoncheckbox in 活动A将复选框监听器放入按钮监听器

时节省button被点击时,它会显示checkbox文本,如果checkbox检查

  save.setOnClickListener(new View.OnClickListener() { // if save button clicked 

         @Override 
         public void onClick(View v) { 
           if(checkbox.isChecked()) { 
            returnIntent.putExtra("outstation", checkbox.getText().toString()); 
            Toast.makeText(getApplicationContext(),checkbox.getText().toString(),Toast.LENGTH_LONG).show(); 
           } 
           } 
          }); 

    public void addListenerOnChk() // for checkbox 
     { 
      checkbox=(CheckBox)findViewById(R.id.checkBox); 

      checkbox.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

         if(((CheckBox)v).isChecked()) 
         { 
           // Toast.makeText(getApplicationContext(),checkbox.getText().toString(),Toast.LENGTH_LONG).show(); 
         } 
        } 

       }); 
      } 

上面的代码工作正常,但它看起来很奇怪。我在OnCreate方法中定义了addListenerOnChk()。如何将复选框保存为onClick而不是创建两个单独的OnClick? (一个是保存按钮和另一个是复选框)

+0

“”当点击保存按钮时,如果复选框被选中,它将显示复选框文本。 “” 那你为什么写这个声明? 如果你想执行检查监听器,那么你应该写。对于所有视图也是一样的 – GvSharma

+0

@gvsharma代码看起来是否正确?必须有两个onClick? –

+0

实际上,您不需要编写onclick或检查checkBox的侦听器。 为checkBox删除该方法。因为您已经检查按钮点击内的复选框状态。 – GvSharma

回答

1
save.setOnClickListener(new View.OnClickListener() { // if save button clicked 

    @Override 
    public void onClick(View v) { 
if(checkbox.isChecked()) { 
returnIntent.putExtra("outstation", checkbox.getText().toString()); 
Toast.makeText(getApplicationContext(),checkbox.getText().toString(),Toast.LENGTH_LONG).show(); 
checkbox.setText("your text here"); 
     } else { 
checkbox.setText(""); 
} 
    } 
}); 

希望这有助于

2

第一种方法是正确..

第二种方法是没有必要的。 checkBox.isChecked是你需要使用的所有东西..你不必为复选框设置监听器。

1

参照这个问题

“我怎样才能把复选框内保存的onClick,而不是创建两个单独的OnClick?”

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //your UI setup and findViewById stuff 

     save.setOnClickListener(this);//implement - View.OnClickListener 
     checkBox.setOnClickListener(this);//implement - View.OnClickListener 
     checkBox.setOnCheckedChangeListener(this);//prefer this one get check box status 

    } 


    @Override 
    public void onClick(View v) { 

     if(v.getId()==R.id.save_button){ 
      //save button action stuff 
     } else if(v.getId()==R.id.check_box){ 
      //checkbox button action stuff 
      Log.i("TAG", " Check box status " + checkBox.isChecked()); 
     } 

    } 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     Log.i("TAG", " Check box status " + isChecked); 
    } 

Happy_Coding;

+0

谢谢先生:) .. –