2013-01-22 91 views
0

你好,我只是新的android ..我只是想問我是否可以顯示從菜單窗口的BMI計算到另一個名爲註冊窗口的活動android..inceause當我運行這段代碼沒有結果寄存器窗口的顯示。謝謝在Android的另一個活動中顯示計算BMI的另一個活動

* 註冊窗口*


public void onClick(View v) 
    { 
     Intent intent = new Intent(Register.this, Menu.class); 
      intent.putExtra("response","counter"); 
      startActivity(intent); 

     int weight = 0, height = 0, age = 0, answer = 0; 
     String test1, test2, test3; 
     test1 = getString(R.id.tvWeight); 
     test2 = getString(R.id.tvAge); 
     test3 = getString(R.id.tvHeight); 

     try { 
      if (test1 != "" && test2 != "" && test3 != "") { 
       Eweight = (EditText) findViewById(R.id.tvWeight); 
       weight = Integer.parseInt(Eweight.getText().toString().trim()); 
       Eage = (EditText) findViewById(R.id.tvAge); 
       age = Integer.parseInt(Eage.getText().toString().trim()); 
       Eheight = (EditText) findViewById(R.id.tvHeight); 
       height = Integer.parseInt(Eheight.getText().toString().trim()); 

       if(gender.contains("Male")) 
        answer = (int) Math.round(1.2 * (66 + (13.7 * weight) + (5 * height) - (6.8 * age))); 

       if(gender.contains("Female")) 
        answer = (int) Math.round(1.2*(655 + (9.6 * weight) + (1.8 * height) - (4.7 * age))); 

       response = answer + " kcal/day"; 
       counter.setText(response); 


      } 
     } catch (Exception e) { 
      System.out.println(e); 
     } 

    }  

菜單窗口

  @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       Intent intent = getIntent(); 
       intent.getStringExtra("response"); 

       String answer = intent.getStringExtra(response); 


      } 
     }); 
+0

不需要爲此啓動一個新的「活動」。如果你想改變顯示內容('setContentView'),只需改變當前的佈局。 – m0skit0

+0

,但需要將結果顯示給其他活動,因爲在我的項目中。例如,當用戶輸入他/她的年齡,體重和身高時,他/她在註冊窗口中單擊提交,將顯示「成功!」。那麼它會自動計算並進入菜單窗口來顯示BMI的結果 – Kurt

+0

讓我再試着解釋一下:你不需要一個** new **'Activity'來改變佈局(顯示的是什麼)。如果您想在新活動中執行此操作,請[繼續](http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,%20int,%20android .os.Bundle%29)。你可以使用'Bundle'來傳遞任何你想要的東西。 – m0skit0

回答

0

很難詳細回答,因爲你沒有提供足夠的細節,例如什麼是gender

你不需要一個新的Activity只是爲了改變佈局(顯示的是什麼)。只需在onClick()方法中執行您想要執行的操作(包括佈局更改)即可。

無論如何,如果你想在新的Activity中做到這一點,你需要使用startActivityForResult()。您可以使用Bundle(第三參數)將您想要的任何內容傳遞給新的Activity。請記住,當這個新孩子Activity結束時,主叫方onActivityResult()將被調用,在代碼中沒有下一句喜歡你似乎認爲這裏:

Intent intent = new Intent(Register.this, Menu.class); 
    intent.putExtra("response","counter"); 
    startActivity(intent); 

    int weight = 0, height = 0, age = 0, answer = 0; 
    String test1, test2, test3; 
    test1 = getString(R.id.tvWeight); 
    test2 = getString(R.id.tvAge); 
    test3 = getString(R.id.tvHeight); 

PS:在Java中,只有類/接口名從大寫開始。類字段以小寫字母開頭。

相關問題