我正在做一個簡單的計算器,但因爲它是選擇一個操作符的方式,因此每當我按下「計算」它永遠不會計算它,但是當我更改在微調器上選擇的項目時,它會用它們各自的操作符計算x和y 。如何在onClickListener中正確使用/代碼onItemSelectedListener?如何在onClickListener中使用onItemSelectedListener?
這是我的代碼。
package com.example.leks.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener
{
private TextView tvResult;
private EditText etFirstnumber, etSecondnumber;
private Button btnCalculate;
private Spinner spnOperators;
private int result;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init()
{
etFirstnumber = (EditText) findViewById(R.id.etFirstnumber);
etSecondnumber = (EditText) findViewById(R.id.etSecondnumber);
spnOperators = (Spinner) findViewById(R.id.spnOperators);
tvResult = (TextView) findViewById(R.id.tvResult);
btnCalculate = (Button) findViewById(R.id.btnCalculate);
btnCalculate.setOnClickListener(this);
}
@Override
public void onClick(View view)
{
try {
switch (view.getId()) {
case R.id.btnCalculate:
spnOperators.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long l)
{
String num1 = etFirstnumber.getText().toString();
String num2 = etSecondnumber.getText().toString();
int x = Integer.parseInt(num1);
int y = Integer.parseInt(num2);
String SelectedItem = parent.getItemAtPosition(position).toString();
if (SelectedItem.equals("+"))
{
result = x + y;
tvResult.setText(String.valueOf(result));
}
if (SelectedItem.equals("-"))
{
result = x - y;
tvResult.setText(String.valueOf(result));
}
if (SelectedItem.equals("*"))
{
result = x * y;
tvResult.setText(String.valueOf(result));
}
if (SelectedItem.equals("/"))
{
result = x/y;
tvResult.setText(String.valueOf(result));
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView)
{
}
});
break;
}
}catch(Exception e)
{
tvResult.setText("Error");
}
}
}
,我想我什麼程序做,當我按下按鈕時只計算。 –
沒問題。只需發給我代碼,我會修復它中的錯誤,並將您發回給您 –
舊代碼或我實現的代碼是什麼? –