如何使用setOnKeyListener&& android中温度转换器的单选按钮?

时间:2014-09-16 23:56:42

标签: java android xml

我正在尝试编写一个转换温度的程序。我正在使用两个单选按钮(cel到F& F到Cel)。我的应用程序正在运行,但我无法选择其他单选按钮。它强制关闭我的应用程序。不知道为什么。也许如果点击另一个按钮,我必须将我的另一个按钮设置为false?     package com.example.temperatureconverter;

 import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.*;

public class Calculate extends Activity 
{
private EditText in, out;
//******************onCreate()*****************************
@Override
protected void onCreate(Bundle b) 
{
    super.onCreate(b);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_calculate);

    in = (EditText)findViewById(R.id.input);
    out =(EditText)findViewById(R.id.results);

    in.setOnKeyListener(new View.OnKeyListener()
    {   

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event)
        {
            double num, calc;
            if((event.getAction() == KeyEvent.ACTION_DOWN) &&
                (keyCode == KeyEvent.KEYCODE_ENTER))
            {
                if(v.getId() == R.id.radio1)
                {
                    num = Double.parseDouble(in.getText().toString());
                    calc = ((9.0/5.0) * num + 32);
                    out.setText(String.valueOf(calc));
                }
                else
                {
                    num = Double.parseDouble(in.getText().toString());
                    calc = (num - 32) * (9.0/5.0);
                    out.setText(String.valueOf(calc));
                }
                return true;
            }
            return false;
        }
    });
}
//******************buttonClick()*****************************  
public void buttonClick(View v)
{
    boolean checked = ((RadioButton)v).isChecked();
    switch(v.getId())
    {
        case R.id.radio1:
            if(checked)
            {

            };

            break;
        case R.id.radio2: 
            if(checked)
            {

            };
            break;
    }
}
}

这是我的名为calculate.xml的布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
 >
<RadioGroup 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <RadioButton android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/celsius"
        android:onClick="buttonClicked"
        android:checked="true"/>
    <RadioButton android:id="@+id/radio2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/farenheit"
        android:onClick="buttonClicked"/>    
 </RadioGroup>
 <EditText android:id="@+id/input"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:singleLine="false"
     android:inputType="number"
     android:hint="@string/input"/>
 <EditText android:id="@+id/results"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:singleLine="false"
     android:inputType="number"/>
</LinearLayout>

0 个答案:

没有答案