2012-01-30 12 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(質問を追加):ここで何が悪いのでしょうか? EDIT2:これを終わらせたら、アンドロイドでプログラマを学ぶために私にどのようにお勧めしますか?本や何か?(プログラミングにまったく新しい、私はC++のビットを知っていたにも関わらず)

+2

ここに質問はありません。 – mamboking

答えて

0

あなたがここで何かを求めていないが、私はあなたがコード設計に苦労していると思います...



プログラミングを開始するときは、まずJavaを学ぶことをおすすめします。あなたがJavaの基礎を理解しないうちに、アンドロイドと闘うのは本当にイライラします。私はJavaコンソールのチュートリアルを検索します(2,3年前に始めたときはかなり良いところでした;-)。


ラジオボタンの変更は、相​​互に依存するため個別に反応することはできません。そこで、まず、チェック状態の変更時にヘルパーメソッド(例: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()を使用することができます。ハードコードされた数字(XMLでは@+id/idname、コードではR.id.idname)の代わりにテキストIDを使用することをお勧めします。

+0

私はプログラミングには全く新しいと言っていたので、ほとんど何も知らない。だから...私はコード内のあなたのコメントを交換する必要がありますか? –

+0

はい。どちらも'onCheckedChanged'は 'updateDate()'を呼び出します。コメントをswitch文に置き換え、 'getCheckedRadioButtonId()'(代わりに 'checkedIdSmoke')を使います。私はスタートのための勧告を追加しました... – Knickedi

+0

ありがとうございました。私は後でそれを探します。さらに質問を追加したい場合は、最後のRadioGroupなどとスイッチを追加するだけでいいですか? –

関連する問題