2012-12-04 4 views
-2

Я написал очень простой пример кода CheckBox. Вы можете оформить код @ СВН кассе http://my-android-ui-examples.googlecode.com/svn/trunk/ мой-андроид-UI-примеры-только для чтенияПервоначально для совершения действия требуется двойной щелчок

Название проекта является: CheckBoxExample Но после чистой сборки и развертывания в реальном андроида мобильный, что я вижу в том, что:

В первый раз мне нужно дважды щелкнуть, чтобы выполнить действие. В следующий раз это всего лишь один клик, который выполняет желаемую работу.

Не могли бы вы сообщить мне, что может быть причиной этого.

С точки зрения Sudipta Deb.

+0

Почему вы не публикуете свой код, поэтому мы не имеем проверить его из своего репо? Это облегчило бы жизнь – dymmeh

+1

Ссылка на файл: https://code.google.com/p/my-android-ui-examples/source/browse/CheckBoxExample/src/com/sudipta/checkbox/MainActivity.java – dymmeh

+0

ссылка есть теперь вы должны отправить свой код в следующий раз. – amorenew

ответ

2

Вы должны использовать onCheckedChangeListener для правильного прослушивания CheckBox изменений.

Я переписал вашу деятельность по реализации этих и правильно установить onClick вашей кнопки .. Удалить заявления OnClick в файле XML

public class MainActivity extends Activity implements OnCheckedChangeListener 
{ 

    private CheckBox chkAndroid, chkIphone, chkWindows; 
    private Button button; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     chkAndroid = (CheckBox) findViewById(R.id.checkBox_android); 
     chkAndroid.setOnCheckedChangeListener(this); 
     chkIphone = (CheckBox) findViewById(R.id.checkBox_ios); 
     chkIphone.setOnCheckedChangeListener(this); 
     chkWindows = (CheckBox) findViewById(R.id.checkBox_windows); 
     chkWindows.setOnCheckedChangeListener(this); 
     button = (Button) findViewById(R.id.button1); 
     button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) 
      { 
       // TODO Auto-generated method stub 
       StringBuffer string = new StringBuffer(); 
       string.append("Iphone checked: ").append(chkIphone.isChecked()); 
       string.append("\nAndroid checked: ").append(chkAndroid.isChecked()); 
       string.append("\nWindows checked: ").append(chkWindows.isChecked()); 
       Toast.makeText(getApplicationContext(), string.toString(), Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
    { 
     if (buttonView == chkAndroid) { 
      // do whatever.. you aren't doing anything currently 
     } else if (buttonView == chkIphone && isChecked) { 
      displaySuggestion(); 
     } else if (buttonView == chkWindows && isChecked) { 
      displaySuggestion(); 
     } 

    } 

    private void displaySuggestion() 
    { 
     Toast.makeText(getApplicationContext(), "Try android", Toast.LENGTH_SHORT).show(); 
    } 
} 
+0

Благодаря dymmeh. Здесь отлично работает ... –

Смежные вопросы