Java 安卓应用赢得';当我运行它时,无法停止崩溃,ParseInt有问题

Java 安卓应用赢得';当我运行它时,无法停止崩溃,ParseInt有问题,java,android,Java,Android,我正在制作一个简单的应用程序来计算运动时燃烧的卡路里。但是,当我试图将edittext转换为int值时,它崩溃了。我也是java和Android Studio的初学者,所以请不要犹豫使用详细的解释。提前谢谢 import android.support.v7.widget.AppCompatTextView; import android.content.Context; import android.net.Uri; import android.os.Bundle; import andro

我正在制作一个简单的应用程序来计算运动时燃烧的卡路里。但是,当我试图将edittext转换为int值时,它崩溃了。我也是java和Android Studio的初学者,所以请不要犹豫使用详细的解释。提前谢谢

import android.support.v7.widget.AppCompatTextView;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.RelativeLayout;
 import android.widget.Spinner;
 import android.widget.TextView;
 import android.widget.Toast;




public class FirstFragment extends Fragment implements AdapterView.OnItemSelectedListener{

    // Store instance variables
    private String title;
    private int page;
    EditText countCal;
    EditText weight;
    int cal;

    Spinner spinner;

    // newInstance constructor for creating fragment with arguments
    public static FirstFragment newInstance(int page, String title) {
        FirstFragment fragmentFirst = new FirstFragment();
        Bundle args = new Bundle();
        args.putInt("someInt", page);
        args.putString("someTitle", title);
        fragmentFirst.setArguments(args);
        return fragmentFirst;
    }

    // Store instance variables based on arguments passed
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        page = getArguments().getInt("someInt", 0);
        title = getArguments().getString("someTitle");


    }

    // Inflate the view for the fragment based on layout XML
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_first, container, false);
        countCal =(EditText)view.findViewById(R.id.editText);
        weight = (EditText)view.findViewById(R.id.weight);

        Spinner spinner = (Spinner)view.findViewById(R.id.spinner);
        ArrayAdapter<?> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.Exercises, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this);
        return view;
    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int i, long l) {

       if (countCal.getText().toString().trim().length() == 0) {
            if (weight.getText().toString().trim().length() == 0) {

            }
        } else {
           if (parent.getItemAtPosition(i).toString() == "Jogging") {
               Toast.makeText(parent.getContext(), (int) (0.0175 * 7 * Integer.parseInt(weight.getText().toString()) * Integer.parseInt(weight.getText().toString())), Toast.LENGTH_SHORT).show();
           } else if (parent.getItemAtPosition(i).toString() == "Walking") {
               Toast.makeText(parent.getContext(), (int) (0.0175 * 3.5 * Integer.parseInt(weight.getText().toString()) * Integer.parseInt(weight.getText().toString())), Toast.LENGTH_SHORT).show();
           } else if (parent.getItemAtPosition(i).toString() == "Free Weights") {
               Toast.makeText(parent.getContext(), (int) (0.0175 * 4.5 * Integer.parseInt(weight.getText().toString()) * Integer.parseInt(weight.getText().toString())), Toast.LENGTH_SHORT).show();
           }

        Toast.makeText(parent.getContext(), "Enter the Values!", Toast.LENGTH_SHORT).show();
        }


    }

    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {

    }
}
             }
这是我的XML布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="stefdude1999.fitness.FirstFragment"
android:id="@+id/content">

<!-- TODO: Update blank fragment layout -->

<Spinner
    android:id="@+id/spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right|top"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<EditText
    android:layout_width="113dp"
    android:layout_height="wrap_content"
    android:inputType="number"
    android:ems="10"
    android:id="@+id/editText"
    android:layout_gravity="left|top"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Enter Minutes"
    android:id="@+id/textView"
    android:layout_gravity="left|top"
    android:layout_below="@+id/editText"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="number"
    android:ems="10"
    android:id="@+id/editText2"
    android:layout_below="@+id/textView"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignRight="@+id/editText"
    android:layout_alignEnd="@+id/editText" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Enter Weight (Kg)"
    android:id="@+id/weight"
    android:layout_below="@+id/editText2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />


我不确定它是哪一个,因为您还没有显示XML布局,但是
countCal
weight
不是
editText
。它们中的一个或两个实际上是
AppCompatTextView
。这基本上是一个
TextView
,支持旧版本的android

首先导入
android.widget.TextView
,然后尝试一次更改一组。因此,请尝试:

weight = (TextView) view.findViewById(R.id.weight);
如果不起作用,请将其切换回原始版本,然后尝试:

countCal = (TextView) view.findViewById(R.id.editText);
如果这不起作用,请尝试将它们都强制转换为
TextView

如果仍然不起作用,请尝试相同的方法,但导入
android.support.v7.widget.AppCompatTextView
,并将它们转换为
AppCompatTextView
。希望这有帮助

编辑:

明白了!在XML布局中,它表示小部件
R.id.weight
是一个文本视图

如果您只对
TextView
施加权重,并将另一个作为
EditText
保留,那么它应该会起作用

weight = (TextView) view.findViewById(R.id.weight);

我不确定是哪个,因为您还没有显示XML布局,但是
countCal
weight
不是
editText
。它们中的一个或两个实际上是
AppCompatTextView
。这基本上是一个
TextView
,支持旧版本的android

首先导入
android.widget.TextView
,然后尝试一次更改一组。因此,请尝试:

weight = (TextView) view.findViewById(R.id.weight);
如果不起作用,请将其切换回原始版本,然后尝试:

countCal = (TextView) view.findViewById(R.id.editText);
如果这不起作用,请尝试将它们都强制转换为
TextView

如果仍然不起作用,请尝试相同的方法,但导入
android.support.v7.widget.AppCompatTextView
,并将它们转换为
AppCompatTextView
。希望这有帮助

编辑:

明白了!在XML布局中,它表示小部件
R.id.weight
是一个文本视图

如果您只对
TextView
施加权重,并将另一个作为
EditText
保留,那么它应该会起作用

weight = (TextView) view.findViewById(R.id.weight);

我添加了我的XML布局,希望能有所帮助。我尝试了这两种方法,两次错误消息都告诉我它是不兼容的类型,因为它需要EditText,并且它提供了TextView,所以我猜它们都是EditText。你能再显示一点活动吗?某个地方有一个不正确的强制转换,但不是在您显示的片段中…我添加了完整的活动,以防您想看到它。我添加了我的XML布局,希望能有所帮助。我尝试了两种方法,两次错误消息都告诉我它是不兼容的类型,因为它需要EditText,并且给定了TextView,所以我猜他们都是编辑文本。你能多展示一些活动吗?有一个不合适的演员阵容,但不是在你展示的片段中…我添加了完整的活动,以防你想看。我觉得这里有点太多的代码-足以让回答这个问题变得更加困难。你能创建一个吗?我觉得这里的代码有点太多了-足以让回答这个问题变得更加困难。你能创造一个新的世界吗?