Я хочу вызвать метод из onCreate, но я продолжаю получать ошибку в моем logCat. Я просматривал некоторые другие ответы, и никто из них не ответил на мой вопрос. Я очень новой для андроид, так что я не знаю много ВОТ XML:вызов метода из onCreate
<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/AbsoluteLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/usd_tot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="116dp"
android:layout_y="120dp"
android:text="Total USD"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/cad_tot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="116dp"
android:layout_y="192dp"
android:text="Total CAD"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/aud_tot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="116dp"
android:layout_y="258dp"
android:text="Total AUD"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/eur_tot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="116dp"
android:layout_y="328dp"
android:text="Total EUR"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/gbp_tot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="116dp"
android:layout_y="408dp"
android:text="Total GBP"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="32dp"
android:layout_y="34dp"
android:text="Start Date"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="82dp"
android:layout_y="0dp"
android:text="Claim Expenses"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="219dp"
android:layout_y="39dp"
android:text="End Date"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/tot_usd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="118dp"
android:layout_y="150dp"
android:text="TextView" />
<TextView
android:id="@+id/tot_cad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="118dp"
android:layout_y="224dp"
android:text="TextView" />
<TextView
android:id="@+id/tot_aud"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="118dp"
android:layout_y="294dp"
android:text="TextView" />
<TextView
android:id="@+id/tot_eur"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="118dp"
android:layout_y="370dp"
android:text="TextView" />
<TextView
android:id="@+id/tot_gbp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="118dp"
android:layout_y="435dp"
android:text="TextView" />
<TextView
android:id="@+id/sdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="33dp"
android:layout_y="62dp"
android:text="TextView" />
<TextView
android:id="@+id/edate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="218dp"
android:layout_y="65dp"
android:text="TextView" />
</AbsoluteLayout>
Вот код.
package app.zioueche_travelexpense;
import java.util.ArrayList;
import java.util.Collection;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class GetDetails extends Activity {
static int usd = 0;
static int cad = 0;
static int aud = 0;
static int gbp = 0;
static int eur = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_view);
calculatePrices(); //I WANT TO CALL THIS> DONT KNOW HOW.
}
public ArrayList<Expense> getExpenses(View v){
int finalPosition = getIntent().getIntExtra("claim_position",0);
Toast.makeText(this, finalPosition+"",Toast.LENGTH_SHORT).show();
ClaimListController ct = new ClaimListController();
Collection<Claim> cl = ClaimListController.getClaimList().getClaim();
ArrayList<Claim> clist = new ArrayList<Claim>(cl);
Claim claim = clist.get(finalPosition);
ArrayList<Expense> elist = claim.getExpenses();
return elist;
}
public void calculatePrices(View v){
ArrayList<Expense> list = getExpenses(v);
for (int i = 0; i < list.size(); i++){
Expense e = list.get(i);
if (e.getCurrency().equals("USD")){
GetDetails.usd += e.getPrice();
}
if (e.getCurrency().equals("CAD")){
GetDetails.cad += e.getPrice();
}
if (e.getCurrency().equals("AUD")){
GetDetails.aud += e.getPrice();
}
if (e.getCurrency().equals("EUR")){
GetDetails.eur += e.getPrice();
}
if (e.getCurrency().equals("GBP")){
GetDetails.gbp += e.getPrice();
}
}
TextView usds = (TextView) findViewById(R.id.tot_usd);
usds.setText(this.usd);
TextView cads = (TextView) findViewById(R.id.tot_cad);
cads.setText(this.cad);
TextView auds = (TextView) findViewById(R.id.tot_aud);
auds.setText(this.aud);
TextView eurs = (TextView) findViewById(R.id.tot_eur);
eurs.setText(this.eur);
TextView gbps = (TextView) findViewById(R.id.tot_gbp);
gbps.setText(this.gbp);
}
}
Я прокомментировал строку, с которой я пытаюсь вызвать метод. Я знаю, что мне нужно передать аргумент VIEW, но я не знаю, как это сделать. Я пробовал View v, this.view, и если я не сделал это неправильно, я не знаю, что я делаю неправильно. Если бы кто-нибудь мог мне помочь, это было бы здорово. Я также опубликую logcat.
01-27 18:00:32.021: E/AndroidRuntime(14399): FATAL EXCEPTION: main
01-27 18:00:32.021: E/AndroidRuntime(14399): Process: app.zioueche_travelexpense, PID: 14399
01-27 18:00:32.021: E/AndroidRuntime(14399): java.lang.RuntimeException: Unable to start activity ComponentInfo{app.zioueche_travelexpense/app.zioueche_travelexpense.GetDetails}: android.content.res.Resources$NotFoundException: String resource ID #0x0
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2412)
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2470)
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.app.ActivityThread.access$900(ActivityThread.java:174)
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307)
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.os.Handler.dispatchMessage(Handler.java:102)
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.os.Looper.loop(Looper.java:146)
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.app.ActivityThread.main(ActivityThread.java:5593)
01-27 18:00:32.021: E/AndroidRuntime(14399): at java.lang.reflect.Method.invokeNative(Native Method)
01-27 18:00:32.021: E/AndroidRuntime(14399): at java.lang.reflect.Method.invoke(Method.java:515)
01-27 18:00:32.021: E/AndroidRuntime(14399): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
01-27 18:00:32.021: E/AndroidRuntime(14399): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
01-27 18:00:32.021: E/AndroidRuntime(14399): at dalvik.system.NativeStart.main(Native Method)
01-27 18:00:32.021: E/AndroidRuntime(14399): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.content.res.Resources.getText(Resources.java:1431)
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.widget.TextView.setText(TextView.java:4954)
01-27 18:00:32.021: E/AndroidRuntime(14399): at app.zioueche_travelexpense.GetDetails.calculatePrices(GetDetails.java:58)
01-27 18:00:32.021: E/AndroidRuntime(14399): at app.zioueche_travelexpense.GetDetails.onCreate(GetDetails.java:22)
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.app.Activity.performCreate(Activity.java:5458)
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
01-27 18:00:32.021: E/AndroidRuntime(14399): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)
01-27 18:00:32.021: E/AndroidRuntime(14399): ... 11 more
Когда вы хотите 'calculatePrices' называться? – iRuth
Я хочу, чтобы он был вызван, как только будет создано действие. Мне нужно установить значения для макета Textviews. Это в коде. Я добавил комментарий, показывающий, где Он находится. я делаю это не в том месте? –
Хорошо. Измените свою подпись метода из 'calculatePrices (View v)' to 'calculatePrices()'. Это должно решить проблему. – iRuth