Как сделать так, чтобы две отдельные кнопки делали две разные вещи в упражнении? - PullRequest
1 голос
/ 23 октября 2019

Я пытаюсь заставить одну кнопку вычислить и отобразить валюту (эта работает), и я пытаюсь заставить другую открыть другое действие и отобразить расчет валюты там.

У меня естьпробовал разные способы попробовать два разных варианта для btnSubmit (который показывает результат расчета валюты) и btnDifferent (который открывает результат в отдельном действии, отображающем результат расчета валюты).

Теперь я могу толькоудается рассчитать результат и одновременно открыть другую деятельность.

public class MainActivity extends AppCompatActivity {

    public Spinner spnCurrency1, spnCurrency2;
    public Button btnSubmit;
    public Button btnDifferent;
    public EditText from;
    public TextView to;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnSubmit = (Button) findViewById(R.id.btnSubmit);
        btnDifferent = (Button) findViewById(R.id.btnDifferent);
        from = (EditText) findViewById(R.id.InputEditText);
        to = (TextView) findViewById(R.id.OutputTextView);


        spnCurrency1 = (Spinner) findViewById(R.id.spnCurrency1);
        List<String> lstCurrency1 = new ArrayList<String>();
        lstCurrency1.add("Euro");
        lstCurrency1.add("USD");
        lstCurrency1.add("Pound");
        ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, lstCurrency1);
        dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spnCurrency1.setAdapter(dataAdapter1);


        spnCurrency2 = (Spinner) findViewById(R.id.spnCurrency2);
        List<String> lstCurrency2 = new ArrayList<String>();
        lstCurrency2.add("Euro");
        lstCurrency2.add("USD");
        lstCurrency2.add("Pound");
        ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, lstCurrency2);
        dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spnCurrency2.setAdapter(dataAdapter2);
    }

    public void onClick(View v) {

        int index1 = spnCurrency1.getSelectedItemPosition();
        int index2 = spnCurrency2.getSelectedItemPosition();
        float value = Float.parseFloat(from.getText().toString());



               Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                startActivity(intent);


                float ratio[] = {0.9f, 1.0f, 0.78f};
                float result = value / ratio[index1] * ratio[index2];
                to.setText(result + "");

        }
    }

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

Использование метода setOnClickListener выглядит более элегантно.

    btnSubmit = (Button) findViewById(R.id.btnSubmit);
    btnDifferent = (Button) findViewById(R.id.btnDifferent);

    btnSubmit.setOnClickListener(new OnClickListener(){
      public void onClick(View view) {
            //do submit
      }
    });
    btnDifferent.setOnClickListener(new OnClickListener(){
      public void onClick(View view) {
            //do different
      }
    });
0 голосов
/ 23 октября 2019

Проверьте с идентификатором представления и выполните действия, основанные на этом:

public void onClick(View v) {
    int index1 = spnCurrency1.getSelectedItemPosition();
    int index2 = spnCurrency2.getSelectedItemPosition();
    float value = Float.parseFloat(from.getText().toString());

    float ratio[] = {0.9f, 1.0f, 0.78f};
    float result = value / ratio[index1] * ratio[index2];

    switch (v.getId()) {
        case R.id.btnSubmit:
            to.setText(result + "");
            break;
        case R.id.btnDifferent:
            Intent intent = new Intent(MainActivity.this, SecondActivity.class);
            intent.putExtra("Result", result);
            startActivity(intent);
            break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...