当前位置: 首页 > 知识库问答 >
问题:

Android转换器应用程序在转换时崩溃

阎声
2023-03-14

我在android studio中建立了一个转换器,当我每次按转换按钮时,距离部分(activity)就会崩溃。该应用程序说,特定的activity已经停止工作,该应用程序回到主要的activity。在android studio中没有显示任何错误,我想我的问题可能是在使用旋转器中的int pos,但我不确定。这是我最后要完成的元素。请帮帮忙。下面是Java,后面是XML。

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main4);

    spinnerFrom = (Spinner)findViewById(R.id.spinner1);
    ArrayAdapter<CharSequence> adapterFrom = ArrayAdapter.createFromResource(this, R.array.distance_array, android.R.layout.simple_spinner_item);
    adapterFrom.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerFrom.setAdapter(adapterFrom);
    spinnerFrom.setOnItemSelectedListener(this);

    spinnerTo = (Spinner)findViewById(R.id.spinner2);
    ArrayAdapter<CharSequence> adapterTo = ArrayAdapter.createFromResource(this, R.array.distance_array, android.R.layout.simple_spinner_item);
    adapterTo.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerTo.setAdapter(adapterTo);
    spinnerTo.setOnItemSelectedListener(this);

}   
public void convert(View view){
    double value = new Double(distance.getText().toString());
    from = spinnerFrom.getSelectedItemPosition();
    to = spinnerTo.getSelectedItemPosition();

    if(from == 0){
        if(to == 1)
            value = UnitConverter.feetToMiles(value);
        else if (to == 2)
            value = UnitConverter.feetToMeters(value);
        else if(to == 3)
            value = UnitConverter.feetToYards(value);
        else
            value = value;
    }else if(from == 1){
        if(to == 0)
            value = UnitConverter.milesToFeet(value);
        else  if (to == 2)
            value = UnitConverter.milesToMeters(value);
        else if(to == 3)
            value = UnitConverter.milesToYards(value);
        else
            value = value;
    }else if(from == 2){
        if(to == 0)
            value =UnitConverter.metersToFeet(value);
        else if(to == 1)
            value = UnitConverter.metersToMiles(value);
        else if(to == 3)
            value = UnitConverter.metersToYards(value);
        else
            value = value;
    }else if(from == 3){
        if(to == 0)
            value = UnitConverter.yardsToFeet(value);
        else if(to == 1)
            value = UnitConverter.yardsToMiles(value);
        else if(to == 2)
            value = UnitConverter.yardsToMeters(value);
        else
            value = value;
    }
    distance.setText(new Double(value).toString());

}

和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" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.jacob.myapplication.Main4Activity"
android:background="@android:color/holo_blue_bright">

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Distance Converter"
    android:id="@+id/textViewTitle"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="92dp"
    android:layout_marginStart="92dp" />

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"
    android:ems="10"
    android:id="@+id/editText"
    android:layout_below="@+id/textViewTitle"
    android:layout_centerHorizontal="true"
    android:hint="Enter Distance" />

<Spinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spinner1"
    android:spinnerMode="dialog"
    android:clickable="true"
    android:layout_below="@+id/textViewFrom"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Convert To:"
    android:id="@+id/textViewTo"
    android:layout_below="@+id/spinner1"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Spinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spinner2"
    android:spinnerMode="dialog"
    android:layout_below="@+id/textViewTo"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Convert From"
    android:id="@+id/textViewFrom"
    android:layout_below="@+id/editText"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Convert"
    android:id="@+id/buttonConvert"
    android:layout_below="@+id/spinner2"
    android:layout_centerHorizontal="true"
    android:onClick="convert" />

null

共有1个答案

贝钧
2023-03-14

这里没有使用相同的变量

double值=新的double(Distance.getText().ToString());

什么是距离,距离在哪里?我在XML布局中看不到它。

看来您没有将EditText的名称更改为distance,EditText中的id名称是android:id=“@+id/EditText”

因此将距离的名称更改为editText

 类似资料:
  • 一、简介 本章节主要介绍主流cms系统转换为PHPCMS V9程序的转换程序包文件 二、目录 phpcms2008 to v9 phpcms2007 to v9 DEDECMS 5.6 to v9 PHP168 Sharp to v9

  • 我使用ModelMapper将一些对象转换为复杂的DTO,反之亦然。 尽管我试图理解留档,但我发现很难理解何时使用转换器、提供程序或抽象转换器。 现在,例如,如果我想将字符串属性转换为目标DTO中的小DTO,我将在抽象转换器中手动执行。 例如: 虽然这是正确的方法吗?我应该何时使用提供商? 如果我想用条件设置属性,我可以在转换器中使用条件吗?或者只有在使用PropertyMap时才能使用条件? 此

  • 问题内容: 我正在学习本教程:如何使用Android Keystore存储密码和其他敏感信息 。它(宽松地)与Google示例应用程序BasicAndroidKeyStore绑定在一起。 我可以使用公钥加密数据,也可以在运行Lollipop的设备上解密。但是我有一个运行棉花糖的Nexus 6,它崩溃了,并显示错误消息: 这是它崩溃的代码: 我不愿意将此归结为Android M怪异之处,因为我认为没

  • 当我按下按钮时,应用程序会崩溃。每个转换“国名”功能都是一个按钮。我会在评论中发布错误。提前道谢。