2017-04-12 100 views
0

我是Android新手,我有這種問題。我想使用fragA複選框將文本添加到fragBfragA。當我選擇一個CheckBox時,文本將出現,但是當我選擇其他CheckBox時,應該添加的文本不可見。只有當我取消選中其他CheckBox時,它纔會顯示。如何向字符串數組添加字符串

請幫幫我。

這裏是我的弗拉加:

public class fragA extends Fragment implements View.OnClickListener{ 
    CheckBox c1,c2,c3; 
    communicator comm; 
    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.frag_a,container,false); 
    } 
    @Override 
    public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     comm=(communicator)getActivity(); 
     c1=(CheckBox)getActivity().findViewById(R.id.c1); 
     c1.setOnClickListener(this); 
     c2=(CheckBox)getActivity().findViewById(R.id.c2); 
     c2.setOnClickListener(this); 
     c3=(CheckBox)getActivity().findViewById(R.id.c3); 
     c3.setOnClickListener(this); 

    } 

    @Override 
    public void onClick(View v) { 
     String final_text=" "; 
     ArrayList<String> selection=new ArrayList<String>(); 
     if(c1.isChecked()){ 
      selection.add("O"); 
      for(String Selections:selection){ 
       final_text=final_text+Selections+"\n"; 
      } 
     } 
     else if(c2.isChecked()) { 
      selection.add("My"); 
      for(String Selections:selection){ 
       final_text=final_text+Selections+"\n"; 
      } 
     } 
     else if(c3.isChecked()) { 
      selection.add("God"); 
      for(String Selections:selection){ 
       final_text=final_text+Selections+"\n"; 
      } 
     } 
      comm.respond(""+final_text); 
    } 
} 
+0

因爲多於一個的複選框可以被檢查。如果您只希望在任何給定時間選擇一件事物,則使用RadioButtons或在選擇新的複選框時取消選中其他複選框。 –

+0

抱歉誤會。但是我想一次選擇多個複選框,我不能。例如我選擇了c1和c2,所以輸出將是「我的」,但它沒有。它只顯示「O」,因爲我先選擇了c1 – jack

+0

然後刪除「else if」。如果(c1.isChecked()){// whatever},if(if(if)'),那麼只檢查一個,而不檢查其他if c2.isChecked()){//無論}等。 –

回答

0

在這裏,我解決我自己的問題。我使用case來代替使用if語句。 現在當我檢查所有的複選框時,所有文本都將可見,當我取消選中一個時,該複選框的文本將被刪除。 我用下面的代碼fragA

public class fragA extends Fragment implements View.OnClickListener{ 
    CheckBox c1,c2,c3; 
    communicator comm; 
    ArrayList<String> selection=new ArrayList<String>(); 
    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.frag_a,container,false); 
    } 
    @Override 
    public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     comm=(communicator)getActivity(); 
     c1=(CheckBox)getActivity().findViewById(R.id.c1); 
     c1.setOnClickListener(this); 
     c2=(CheckBox)getActivity().findViewById(R.id.c2); 
     c2.setOnClickListener(this); 
     c3=(CheckBox)getActivity().findViewById(R.id.c3); 
     c3.setOnClickListener(this); 

    } 

    @Override 
    public void onClick(View v) { 
     boolean checked = ((CheckBox) v).isChecked(); 
     String final_work=""; 
     switch (v.getId()){ 
      case R.id.c1: 
       if(checked) { 
        selection.add("O"); 
        for (String Selections : selection) { 
         final_work = final_work + Selections + "\n"; 
        }comm.respond(""+final_work); 
       } 

       else 
        { 
         selection.remove("O"); 
         for (String Selections : selection) { 
          final_work = final_work + Selections + "\n"; 
         }comm.respond(""+final_work); 
        } 
       break; 
      case R.id.c2: 
       if(checked) 
       {selection.add("My"); 
        for (String Selections : selection) { 
          final_work = final_work + Selections + "\n"; 
         }comm.respond(""+final_work); 
        } 
       else 
       {selection.remove("My"); 
        for (String Selections : selection) { 
          final_work = final_work + Selections + "\n"; 
         }comm.respond(""+final_work); 
        } 
       break; 
      case R.id.c3: 
       if(checked) 
       {selection.add("God"); 
        for (String Selections : selection) { 
          final_work = final_work + Selections + "\n"; 
         }comm.respond(""+final_work); 
        } 
       else 
       {selection.remove("God"); 
        for (String Selections : selection) { 
          final_work = final_work + Selections + "\n"; 
         }comm.respond(""+final_work);} 
       break; 
     } 
    } 
}