我對Java和android開發相當新。我在安卓應用程序中執行微調時遇到問題。微調器填充得很好,但是我無法將其轉換爲轉換變量的標籤,以便在微調器中索引更改時進行更改。從本質上講,我開始工作的類是selectOption()或public void onItemSelected(AdapterView parent,View view,int position,long id)class。麻煩實施微調
任何幫助非常感謝。
package com.example.conversion;
import java.util.ArrayList;
import java.util.List;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.TextView.OnEditorActionListener;
public class MainActivity extends ActionBarActivity implements OnEditorActionListener, AdapterView.OnItemSelectedListener{
//Graphical Variables
private Spinner option;
private TextView inputTextView;
private TextView outputTextView;
private EditText conversionInput;
private TextView conversionOutput;
//Conversions
private float
milesToKil = 1.6093f,
kilToMiles = 0.6214f,
inchToCent = 2.54f,
centToInch = 0.3937f;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//get IDs
option = (Spinner) findViewById(R.id.option);
inputTextView = (TextView) findViewById(R.id.inputTextView);
outputTextView = (TextView) findViewById(R.id.outputTextView);
conversionInput = (EditText) findViewById(R.id.conversionInput);
conversionOutput = (TextView) findViewById(R.id.conversionOutput);
conversionInput.setOnEditorActionListener(this);
//Add values to spinner
addToSpinner();
//selectOption();
display("");
}
//Spinner
public void addToSpinner() {
option = (Spinner) findViewById(R.id.option);
List<String> list1 = new ArrayList<String>();
list1.add("Miles To Kilometers");
list1.add("Kilometers To Miles");
list1.add("Inches To Centimeters");
list1.add("Centimeters to Inches");
ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list1);
dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
option.setAdapter(dataAdapter1);
}
/*public void selectOption()
{
int position;
position = option.getSelectedItemPosition();
String cAmountString = conversionInput.getText().toString();
float temp = Float.parseFloat(cAmountString);
if(position == 0)
{
inputTextView.setText("Miles");
outputTextView.setText("Kilometers");
convertMilesToKilometers(temp);
}
else if(position == 1)
{
inputTextView.setText("Kilometers");
outputTextView.setText("Miles");
convertKilometersToMiles(temp);
}
else if(position == 2)
{
inputTextView.setText("Inches");
outputTextView.setText("Centimeters");
//convertInchesToCentimeters(cAmountString);
}
else if(position == 3)
{
inputTextView.setText("Centimeters");
outputTextView.setText("Inches");
//convertCentimetersToInches(cAmountString);
}
}*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
display("");
return false;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
TextView myText = (TextView) view;
Toast.makeText(this, "You selected " + myText.getText() + " ", Toast.LENGTH_LONG).show();
String cAmountString = conversionInput.getText().toString();
float temp = Float.parseFloat(cAmountString);
if(position == 0)
{
inputTextView.setText("Miles");
outputTextView.setText("Kilometers");
convertMilesToKilometers(temp);
}
else if(position == 1)
{
inputTextView.setText("Kilometers");
outputTextView.setText("Miles");
convertKilometersToMiles(temp);
}
else if(position == 2)
{
inputTextView.setText("Inches");
outputTextView.setText("Centimeters");
//convertInchesToCentimeters(cAmountString);
}
else if(position == 3)
{
inputTextView.setText("Centimeters");
outputTextView.setText("Inches");
//convertCentimetersToInches(cAmountString);
}
}
public void display(String displayText)
{
if(displayText.equals(""))
{
conversionOutput.setText("0.0");
}
else
{
conversionOutput.setText(displayText);
}
}
private void convertMilesToKilometers(float cAmount) {
float total;
total = cAmount * milesToKil;
String temp2 = total + "";
display(temp2);
}
private void convertKilometersToMiles(float cAmount) {
float total;
total = cAmount * kilToMiles;
String temp2 = total + "";
display(temp2);
}
private void convertInchesToCentimeters(String cAmount) {
float temp;
float total;
temp = Float.parseFloat(cAmount);
total = temp * inchToCent;
String temp2 = total + "";
display(temp2);
}
private void convertCentimetersToInches(String cAmount) {
float temp;
float total;
temp = Float.parseFloat(cAmount);
total = temp * centToInch;
String temp2 = total + "";
display(temp2);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
}
這會進入特定的班級嗎?感謝您的幫助:) – user3369965 2014-11-05 20:28:23
當然,只需創建一個實現onItemSelectedListener接口的新類並覆蓋您的方法。 讓我們一起去 '類CustomListener實現OnItemSelectedListener { @覆蓋 公共無效onItemSelected(適配器視圖>爲arg0,ARG1觀,詮釋ARG2,長ARG3){// 東西 }' 現在與您的活動微調只是打電話 'option.setOnItemSelectedListener(new CustomListener());' 對不起,錯誤,我現在沒有可能檢查正確性。 – Zuop 2014-11-05 20:35:07
那麼,Prem是對的。我沒有滾動到右側看到你已經實現了OnItemSelectedListener接口。 – Zuop 2014-11-05 20:41:58