2013-03-14 27 views
0

因此,假設用戶在我的Incomings類的EditText字段中輸入總數,然後我希望將其傳遞給我的Results類。我如何在Android中解決這個問題?我知道最好的方法是使用Accessor方法。 我的進帳類:在Android中的不同類中訪問變量

public void onClick(View v) { 

String userLoan = etLoan.getText().toString(); 
String userGrant = etGrant.getText().toString(); 
String userFirst = etFirst.getText().toString(); 

float fUserLoan = Float.parseFloat(userLoan); 
float fUserGrant = Float.parseFloat(userGrant); 
float fUserFirst = Float.parseFloat(userFirst); 

float totalIncomings = fUserLoan + fUserGrant + fUserFirst; 

Intent intent = new Intent(v.getContext(), Outgoings.class); 
startActivity(intent); 

} 
}); 

我的結果類有一個空白的功能,並會計算總量 我已經用我的MainAcivity類存取方法嘗試:

public float getTotalOutgoings() { 
    return totalOutgoings; 
} 

public void setTotalOutgoings(float totalOutgoings) { 
    this.totalOutgoings = totalOutgoings; 
} 

public float getTotalIncomings() { 
    return totalIncomings; 
} 

public void setTotalIncomings(float totalIncomings) { 
    this.totalIncomings = totalIncomings; 
} 

public float getTotalResult() { 
    return totalResult; 
} 

public void setTotalResult(float totalResult) { 
    this.totalResult = totalResult; 
} 

有什麼建議?

+2

活動 - >活動數據傳遞的最佳方式是傳遞意圖附加組件。 – 2013-03-14 14:49:02

+0

@Adam是的,你應該在Android中使用意圖傳遞數據。 – 2013-03-14 14:54:31

+0

@TGMCians呵呵我還是需要醒來。但問題是,結果是從哪裏來的? – 2013-03-14 14:54:39

回答

0

通行證意圖演員:

Intent intent = new Intent(v.getContext(), Outgoings.class); 
intent.putExtra ("total",totalIncomings); 
startActivity(intent); 

然後在你的下一個活動訪問與

Intent i = getIntent(); 
float totalComings = i.getFloatExtra("total",-1.0); 

現在你的結果類。這取決於你想要用這個班級做什麼。如果你需要的只是一個簡單的計算,那麼創建一個靜態方法。數據傳遞通常是相反的。該活動調用一個數據類,給它數據,然後然後數據類做它需要做的任何事情並將結果返回給活動。

+0

謝謝非常:) – 2013-03-14 15:53:52

-1

你試圖在你的MainActivity上調用一個函數嗎? 。

MainActivity m = (MainActivity) getActivity(); 
m.setTotalIncomings(XXX); 
0

使用

Bundle bd = new Bundle(); 
bd.putFloat("key",value); 
intent.putExtras(bd); 
startActivityForResult(intent,1); 

在其他類
捆綁堤岸= getIntent()getExtras();
float value = bd.getFloat(「key」);