2012-01-30 3 views
0

Я совершенно не знаком с программированием, и я пытаюсь создать калькулятор того дня, когда вы умрете (Obviuosly false). Я сделал следующие переключатели, которые берут данные с пользовательского ввода, такие как вопросы, которые вы курите, или вы мужчина или женщина. Это код у меня есть:Переключатель в зависимости от предыдущей переменной переключения

package as.as; 

import as.as.R; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.RadioGroup; 
import android.widget.TextView; 

public class myMenu extends Activity{ 
    protected static final float Die = 80; 
    protected float Gender; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    final TextView MensajeGender = (TextView)findViewById(R.id.age); 
    final RadioGroup rggender = (RadioGroup)findViewById(R.id.radioGroup2); 

    rggender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
     public void onCheckedChanged(RadioGroup group, int checkedIdGender) { 
     switch(checkedIdGender){ 
      //male 
      case 2131099655: 
      double Gender = (Die*0.93);  
      MensajeGender.setText("" + Gender); 
      break; 
      //female 
      case 2131099656: 
      Gender = (Die*1.04); 
      MensajeGender.setText("" + Gender); 
      break; 
     } 

     final RadioGroup rgsmoke = (RadioGroup)findViewById(R.id.radioGroup1); 
     rgsmoke.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
      public void onCheckedChanged(RadioGroup group, int checkedIdSmoke) { 
      switch(checkedIdSmoke){ 
       case 2131099660: 
       double Smoke = Gender*0.93; 
       MensajeGender.setText("" + Smoke); 
       break; 
      case 2131099661: 
       Smoke = Gender*1.04;  
       MensajeGender.setText(" " + Smoke); 
       break; 
      } 
      } 
     }); 
     } 
    }); 
    }; 
} 

EDIT (ADD) ВОПРОС: Что здесь не так? EDIT2: Если я закончу это, как бы вы порекомендовали мне научиться программированию в андроиде? Книга или что-то? (Совершенно новым для программирования, хотя я знал немного C++)

+2

Здесь, как представляется, здесь нет вопроса. – mamboking

ответ

0

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


Редактировать:
Когда вы начинаете с программирования, я бы рекомендовал сначала изучить Java. Будет очень сложно бороться с андроидом, прежде чем вы не поймете основы Java. Я бы искал обучающие программы для консоли Java (там, где довольно хорошие, когда я начал пару лет назад ;-).


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

Вот что помощник будет делать:

public void updateDate() { 
    final TextView MensajeGender = (TextView)findViewById(R.id.age); 
    final RadioGroup rggender = (RadioGroup)findViewById(R.id.radioGroup2); 
    final RadioGroup rgsmoke = (RadioGroup)findViewById(R.id.radioGroup1); 

    double date; 

    // switch gender and calculate date 
    // switch smoke and calculate date 

    MensajeGender.setText(" " + date); 
} 

Вы можете использовать getCheckedRadioButtonId() проверить выбранную кнопку. И рекомендовал бы использовать текстовые идентификаторы вместо жестко закодированных номеров (@+id/idname в XML и R.id.idname в коде).

+0

Как я уже сказал, я совершенно новичок в программировании, поэтому почти ничего не знаю. Итак ... я должен заменить ваши комментарии в коде переключателем? –

+0

Да. Оба'onCheckedChanged' вызывают 'updateDate()'. Замените комментарии операторами switch и используйте 'getCheckedRadioButtonId()' (вместо 'checkedIdSmoke'). Я добавил рекомендацию для начинающих ... – Knickedi

+0

Спасибо большое. Я буду искать его позже. Если бы я хотел добавить больше «вопросов», мне нужно только добавить последнюю вещь и группу RadioGroup и переключатель? –

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