Hello fellow programmers!
I have a very disturbing situation here...I'm developing an Android App with several activities.In them I have buttons.The app itself is for measuring calories and other sports releated stuff.
I have a calorie calculator which I have built in the app,spread across 2 activities.In activity 1,the calculator measures the Basal Metabolic Rate and In the second activity,the app calculates the calories needed,when clicking a button for the desired activity level.My app crashes in the second activity,when clicking "Sedentary" button and I have no clue why,because these buttons are built just like the buttons in my first activity.I'll post photos and my code so you can get orientation.
Btw,the app crashes also when clicking "Null Data" in the first activity with the BMR...The button doesn't have any coding on it and does nothing.I'm not calling calculate() method in the second activity,instead I tried doing the button click in the main method,but it still didn't work.
您好同事! 我有一个非常令人不安的情况在这里...我正在开发一个Android应用程序与几个活动。在他们我有按钮。该应用程序本身是测量卡路里和其他运动相关的东西。 我有一个卡路里计算器,我已经在应用程序中构建,分布在2个活动中。在活动1中,计算器测量基础代谢率,在第二个活动中,应用程序计算需要的卡路里,单击所需的按钮活动水平。我的应用程序在第二项活动中崩溃,点击“久坐”按钮时,我不知道为什么,因为这些按钮的内容与我第一次活动中的按钮一样。我会发布照片和代码,以便您可以获得方向。 顺便说一句,应用程序也崩溃时,第一个活动与BMR中单击“空数据”...该按钮没有任何编码,并且什么都不做。我没有在第二个活动中调用calculate()方法,而是我尝试在主方法中按下按钮,但它仍然无法工作。 First ActivitySecond Activity单击按钮时,应用程序崩溃,Android Studio(Java)
`package com.petartonkov.foodandsportsinfo;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
public class CalorieCalculator extends AppCompatActivity {
public Button nextstepbtn;
public TextView BMR;
public EditText height;
public EditText weight;
public EditText age;
public void calculate() {
final Button calculateBMR = (Button) findViewById(R.id.CalcBtn);
final TextView BMR = (TextView) findViewById(R.id.textView_BMR);
final EditText weight = (EditText) findViewById(R.id.editText_weight);
final EditText height = (EditText) findViewById(R.id.editText_height);
final EditText age = (EditText) findViewById(R.id.editText_age);
assert calculateBMR != null;
calculateBMR.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
assert weight != null;
float weight1 = Float.parseFloat(weight.getText().toString());
assert height != null;
float height1 = Float.parseFloat(height.getText().toString());
assert age != null;
float age1 = Float.parseFloat(age.getText().toString());
float BMR1 = (13.75f * weight1 + 5.003f * height1 - 6.755f * age1) + 66.75f;
assert BMR != null;
BMR.setText(Float.toString(BMR1));
}
});
}
public void calculate1() {
final Button calculateBMR = (Button) findViewById(R.id.CalcBtnFemale);
final TextView BMR = (TextView) findViewById(R.id.textView_BMR);
final EditText weight = (EditText) findViewById(R.id.editText_weight);
final EditText height = (EditText) findViewById(R.id.editText_height);
final EditText age = (EditText) findViewById(R.id.editText_age);
assert calculateBMR != null;
calculateBMR.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
assert weight != null;
float weight1 = Float.parseFloat(weight.getText().toString());
assert height != null;
float height1 = Float.parseFloat(height.getText().toString());
assert age != null;
float age1 = Float.parseFloat(age.getText().toString());
float BMR1 = (9.563f * weight1 + 1.85f * height1 - 4.676f * age1) + 655.1f;
assert BMR != null;
BMR.setText(Float.toString(BMR1));
}
});
}
public void init4(){
nextstepbtn = (Button)findViewById(R.id.NextStepBtn);
nextstepbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent1 = new Intent(getBaseContext(), CalorieCalculatorSecondActivity.class);
intent1.putExtra("BMR", (Parcelable) BMR);
startActivity(intent1);
}
});
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calorie_calculator);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
init4();
calculate();
calculate1();
}
}
`
` package com.petartonkov.foodandsportsinfo;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class CalorieCalculatorSecondActivity extends CalorieCalculator {
public void totalcalories() {
final Button calculateBtn = (Button) findViewById(R.id.button_sedentary);
final TextView totalcalories = (TextView) findViewById(R.id.textView_totalcalories);
final TextView BMR = (TextView) findViewById(R.id.textView_BMR);
assert calculateBtn != null;
calculateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
assert BMR != null;
float BMR2 = Float.parseFloat(BMR.getText().toString());
float totalcalories1 = BMR2 * 1.2f;
assert totalcalories != null;
totalcalories.setText(Float.toString(totalcalories1));
}
});
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calorie_calculator_second);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Bundle extras = getIntent().getExtras();
final Button calcBtn = (Button)findViewById(R.id.button_sedentary);
final TextView totalcalories2 = (TextView)findViewById(R.id.textView_totalcalories);
final TextView BMR1 = (TextView) findViewById(R.id.textView_BMR);
assert calcBtn != null;
calcBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
assert BMR1 != null;
float BMR3 = Float.parseFloat(BMR1.getText().toString());
float totalcalories4 = BMR3 * 1.2f;
assert totalcalories2 != null;
totalcalories2.setText(Float.toString(totalcalories4));
}
});
}
}
`
`
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Enter your data below to calculate your BMR(Basal Metabolic Rate) and then enter your level of physical activity to determine your daily calorie needs.BMR-this number is the calories needed from the body to maintain basic living functions."
android:id="@+id/textView2"
android:textColor="#040404"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="30dp" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="go to next step"
android:id="@+id/NextStepBtn"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="BMR:"
android:id="@+id/textView11"
android:textColor="#070707"
android:layout_below="@+id/CalcBtn"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="26dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="CAL"
android:id="@+id/textView13"
android:layout_alignTop="@+id/textView_BMR"
android:layout_centerHorizontal="true"
android:textColor="#980606" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NULL DATA"
android:id="@+id/btn_nulldata"
android:layout_alignBaseline="@+id/NextStepBtn"
android:layout_alignBottom="@+id/NextStepBtn"
android:layout_alignRight="@+id/textView2"
android:layout_alignEnd="@+id/textView2"
android:onClick="onCheckboxClicked"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/editText_age"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="27dp"
android:hint="Enter age"
android:layout_below="@+id/textView2" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/editText_weight"
android:layout_below="@+id/editText_age"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:hint="Enter weight(In KG)"
android:layout_alignRight="@+id/NextStepBtn"
android:layout_alignEnd="@+id/NextStepBtn" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/editText_height"
android:layout_below="@+id/editText_weight"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:hint="Enter height(In CM)" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/textView_BMR"
android:layout_alignTop="@+id/textView11"
android:layout_toLeftOf="@+id/NextStepBtn"
android:layout_toStartOf="@+id/NextStepBtn"
android:textColor="#980606" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CALCULATE BMR-MALE"
android:id="@+id/CalcBtn"
android:background="?attr/colorPrimary"
android:textColor="#ffffff"
android:layout_marginTop="31dp"
android:layout_below="@+id/editText_height"
android:layout_toLeftOf="@+id/textView13"
android:layout_toStartOf="@+id/textView13" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CALCULATE BMR-FEMALE"
android:id="@+id/CalcBtnFemale"
android:background="?attr/colorPrimary"
android:textColor="#ffffff"
android:layout_alignBottom="@+id/CalcBtn"
android:layout_toRightOf="@+id/textView13"
android:layout_toEndOf="@+id/textView13" />
</RelativeLayout>`
`
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="SELECT YOUR LEVEL OF PHYSICAL ACTIVITY:"
android:id="@+id/textView10"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="sedentary"
android:id="@+id/button_sedentary"
android:layout_below="@+id/textView10"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:clickable="true"
android:enabled="true"
android:onClick="setContentView" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="moderately active"
android:id="@+id/button_moderatelyactive"
android:layout_alignTop="@+id/button_sedentary"
android:layout_alignRight="@+id/textView14"
android:layout_alignEnd="@+id/textView14" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Very active"
android:id="@+id/button_veryactive"
android:layout_below="@+id/button_sedentary"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Extremely active"
android:id="@+id/button_extremelyactive"
android:layout_alignBottom="@+id/button_veryactive"
android:layout_alignLeft="@+id/button_moderatelyactive"
android:layout_alignStart="@+id/button_moderatelyactive" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Sedentary - Little or no exercise,little walking"
android:id="@+id/textView14"
android:layout_below="@+id/button_veryactive"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textColor="#e10e0e" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Lighty active - light exercise 1-3 times/week + walking"
android:id="@+id/textView15"
android:layout_below="@+id/textView14"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textColor="#e10e0e" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Moderately active - exercise 3-5 times/week + walking"
android:id="@+id/textView16"
android:layout_below="@+id/textView15"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textColor="#e10e0e" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Very active - hard exercise 5-7 times/week + walking"
android:id="@+id/textView17"
android:textColor="#e10e0e"
android:layout_below="@+id/textView16"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="TOTAL CALORIES NEEDED:"
android:id="@+id/textView18"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textColor="#080808" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/textView_totalcalories"
android:layout_alignTop="@+id/textView18"
android:layout_toRightOf="@+id/textView18"
android:layout_toEndOf="@+id/textView18"
android:editable="false"
android:enabled="false"
android:text="0" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="CAL"
android:id="@+id/textView20"
android:layout_alignBottom="@+id/textView_totalcalories"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textColor="#090909" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NULL DATA"
android:id="@+id/btn_nulldata2"
android:layout_marginBottom="48dp"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/button_sedentary"
android:layout_alignEnd="@+id/button_sedentary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Extra active - hard exercise 5-7 times/week + physical job + walking"
android:id="@+id/textView3"
android:textColor="#e10e0e"
android:layout_below="@+id/textView17"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lightly active"
android:id="@+id/button"
android:layout_alignBottom="@+id/button_extremelyactive"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@+id/button_extremelyactive"
android:layout_toEndOf="@+id/button_extremelyactive" />
</RelativeLayout>`
`
--------- beginning of crash
06-14 06:10:35.167 2481-2481/com.petartonkov.foodandsportsinfo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.petartonkov.foodandsportsinfo, PID: 2481
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.TextView.getText()' on a null object reference
at com.petartonkov.foodandsportsinfo.CalorieCalculatorSecondActivity$2.onClick(CalorieCalculatorSecondActivity.java:44)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
`
发布你的logcat,并为将来的问题阅读[this](http://stackoverflow.com/help/formatting)和[this](http://stackoverflow.com/help/how-to-ask) –
我会记住它的.logcat是在崩溃时发布的。 –
哪个班正在使用1st布局和2nd布局?哪一个是activity_calorie_calculator_second – NehaK