如何在android中使用微调器?

时间:2014-03-20 17:39:46

标签: java android spinner fill

我是android新手。我正在尝试制作简单的单位转换器。该布局包含用于输入的EditText,两个微调器(往返),一个ImageButton和EditText以显示答案。 我想为微调器添加值,当选择这些值时,我想执行操作。

我的xml代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" 
tools:context=".BitsBytes" >

<Spinner
    android:id="@+id/SpinnerFrom"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView2"
    android:layout_alignRight="@+id/inputvalue"
    android:layout_below="@+id/textView2"
    android:entries="@array/bitsbytesfrom"
    android:prompt="@string/from_prompt" />

<Spinner
    android:id="@+id/SpinnerTo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView3"
    android:layout_alignRight="@+id/SpinnerFrom"
    android:layout_below="@+id/textView3"
    android:entries="@array/bitsbytesto"
    android:prompt="@string/to_prompt" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/SpinnerFrom"
    android:layout_below="@+id/SpinnerFrom"
    android:layout_marginTop="16dp"
    android:text="To:"
    android:textColor="#000000"
    android:textSize="20dp" />

<TextView
    android:id="@+id/textView6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="16dp"
    android:gravity="center"
    android:text="Value: "
    android:textSize="20dp" />

<EditText
    android:id="@+id/inputvalue"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textView6"
    android:layout_alignBottom="@+id/textView6"
    android:layout_toRightOf="@+id/textView6"
    android:ems="10"
    android:hint="Enter value"
    android:inputType="numberDecimal" >

    <requestFocus />
</EditText>

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView6"
    android:layout_below="@+id/inputvalue"
    android:layout_marginTop="16dp"
    android:text="From:"
    android:textColor="#000000"
    android:textSize="20sp" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="19dp"
    android:text="Bits/Bytes Conversion"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="25dp" />

<ImageButton
    android:id="@+id/convertButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/SpinnerTo"
    android:layout_centerHorizontal="true"
    android:background="#00000000"
    android:src="@drawable/btnconvert" 
    android:clickable="true"/>

<TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/answer"
    android:layout_centerHorizontal="true"
    android:text="Answer"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
    android:id="@+id/answer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="28dp"
    android:ems="10"
    android:inputType="numberDecimal" />

</RelativeLayout>

我的java代码:

package com.easy.convert;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Spinner;
import android.widget.TextView;

public class BitsBytes extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.bitsbytes);

    ImageButton ib = (ImageButton) findViewById(R.id.convertButton);
    ib.setOnClickListener(new View.OnClickListener() {

                EditText etValue = (EditText) findViewById(R.id.inputvalue);
                Spinner spBitsBytesFrom = (Spinner) findViewById(R.id.SpinnerFrom);
                Spinner spBitsBytesTo = (Spinner) findViewById(R.id.SpinnerTo);
                String txtFromSpinner = spBitsBytesFrom.getSelectedItem().toString();
                String txtToSpinner = spBitsBytesTo.getSelectedItem().toString();
                TextView Answer = (TextView) findViewById(R.id.answer);

                public void onClick(View v)
                {

                    if (txtFromSpinner.equals("Bits") && txtToSpinner.equals("Bytes"))
                    {
                        Double value = Double.parseDouble(etValue.getText().toString());
                        Double answer = (double) 0;
                        answer = value/8;
                        String stringAnswer = Double.toString(answer);
                        Answer.setText(stringAnswer);
                    }

                }
            });

}
}

我使用字符串数组填充微调器。我无法弄清楚我的代码中有什么错误,因为logcat中没有错误。

1 个答案:

答案 0 :(得分:0)

改变这一点,

 (txtFromSpinner.equals("Bits") && txtToSpinner.equals("Bytes"))

if((txtFromSpinner.getSelectedItem().toString().equals("Bits")) && (txtToSpinner.getSelectedItem().toString().equals("Bytes")))

这将从微调器中选择的项目中获取文本。