2016-01-10 96 views
0

我試圖將數據從一個活動傳遞到另一個活動。 當我從我創建的包中檢索數據時,它將返回null而不是它應該是的數字。Android - 計數edittext加上一個值並顯示它的值

這裏是我的代碼,我定義的數量和它傳遞給我的新活動:

public class SelectDrinks extends MainActivity { 
    int AddOneBeer; 
    int SubstractOneBeer; 
    String AmountOfHoursString; 
    String AmountOfBeersString; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.selectdrinks); 

     final ImageButton btnBack = (ImageButton) findViewById(R.id.imgBtnBack); 
     final Button btnConfirm = (Button) findViewById(R.id.btnSelectedDrinksConfirm); 
     final TextView AmountOfHours = (TextView) findViewById(R.id.tvDurationCalc); 
     final TextView AmountOfBeers = (TextView) findViewById(R.id.tvAmountOfBeers); 
     ImageView plusBeers = (ImageView) findViewById(R.id.btnDrink1); 
     ImageButton minBeers = (ImageButton) findViewById(R.id.minBeers); 


     btnBack.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Intent goBackToMain = new Intent(getApplicationContext(), MainActivity.class); 
       startActivity(goBackToMain); 
      } 
     }); 

     btnConfirm.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Intent goToStep3 = new Intent(getApplicationContext(), Calculate.class); 
       goToStep3.putExtra("AmountOfHours", AmountOfHoursString); 
       goToStep3.putExtra("AmountOfBeers", AmountOfBeersString); 
       startActivity(goToStep3); 
      } 
     }); 

     plusBeers.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       AddOneBeer = Integer.parseInt(AmountOfBeers.getText().toString()); 
       AddOneBeer++; 
       AmountOfBeers.setText(Integer.toString(AddOneBeer)); 
      } 
     }); 

     minBeers.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       SubstractOneBeer = Integer.parseInt(AmountOfBeers.getText().toString()); 
       SubstractOneBeer--; 
       AmountOfBeers.setText(Integer.toString(SubstractOneBeer)); 
      } 
     }); 
    } 
} 

然後我嘗試使用我的AmountOfBeersString和AmountOfHoursString在我的新的活動。啓動它時,兩個數字都表示'null'。

public class Calculate extends MainActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.calculate); 

     final ImageButton btnBack = (ImageButton) findViewById(R.id.imgBtnBack); 
     final Button btnConfirm = (Button) findViewById(R.id.btnCalculateConfirm); 
     TextView changeRequest = (TextView) findViewById(R.id.tvEditRequest); 
     TextView tvSummaryBeers = (TextView) findViewById(R.id.tvSummaryBeers); 

     Bundle bundle = getIntent().getExtras(); 
     String AmountOfHoursString = bundle.getString("AmountOfHoursString"); 
     String AmountOfBeersString = bundle.getString("AmountOfBeersString"); 

     tvSummaryBeers.setText("You drank " + AmountOfBeersString + " beer(s) in " + AmountOfHoursString + " hour(s)."); 

     btnBack.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Intent goBackToMain = new Intent(getApplicationContext(), MainActivity.class); 
       startActivity(goBackToMain); 
      } 
     }); 

     btnConfirm.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Intent calculate = new Intent(getApplicationContext(), Result.class); 
       startActivity(calculate); 
      } 
     }); 

     changeRequest.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Intent back = new Intent(getApplicationContext(), SelectDrinks.class); 
       startActivity(back); 
      } 
     }); 
    } 
} 

回答

1

你需要從TextView的

goToStep3.putExtra("AmountOfHours", AmountOfHours.getText().toString()); 
goToStep3.putExtra("AmountOfBeers", AmountOfBeers.getText().toString()); 

AmountOfHoursStringAmountOfHoursString都是字符串宣佈獲得文本,但我不認爲他們初始化任何地方。

還要確保您使用相同的鍵從束

String AmountOfHoursString = bundle.getString("AmountOfHours"); 
String AmountOfBeersString = bundle.getString("AmountOfBeers"); 
+0

這工作!謝謝! –

+0

@MeindertStijfhals歡迎 – Raghunandan

1

在你Calculate活動,

String AmountOfHoursString = bundle.getString("AmountOfHoursString"); 
String AmountOfBeersString = bundle.getString("AmountOfBeersString"); 

String AmountOfHoursString = bundle.getString("AmountOfHours"); 
String AmountOfBeersString = bundle.getString("AmountOfBeers"); 

您使用比你用來擺在首位發送數據的一個不同的密鑰改變。

+0

它仍然是回到「空」 –

+0

@MeindertStijfhals,你在哪裏得到EDITTEXT字符串的數據? – Raghunandan

+0

@MeindertStijfhals注意到您沒有爲正在傳遞的字符串分配任何值。這就是爲什麼你得到空。 –

相關問題