0

ここに画像の説明を入力してください

みなさん、こんにちは。最初のAndroidアプリについてサポートが必要です。また、プログラミングの経験も少しあります。ですから、最初にやりたかったのは、「ユーザーが変換元と変換先の方法を選択し、TextViewに値を入力してから、変換ボタンを押してトーストで終了するようにする」というようなものでした。

現在onClickListener()、トースト出力で終了するボタンに問題があります。スイッチ/ケースの文字列から結果を取得できません。また、コードをテストできないため、コードに問題がないかどうかもわかりません:(。コードを機能させるために何時間も費やしましたが、運がありません。誰かに正しい方向を示してもらい、何を見る必要があるかを教えてください。 。

    class convert_handler_CMtoM implements Button.OnClickListener {

    public void onClick(View v) {

        if (v == btnDisplay) {

            if (MMtoCM.isChecked())
            {
                int Amount = (int) Float.parseFloat(et1.getText().toString());
                int formula = (int) (Amount * 10) ; 
                String result = String.valueOf(formula);
            }

            if (CMtoMM.isChecked())
            {
                double Amount = (double)Float.parseFloat(et1.getText().toString());
                double formula = (double) (Amount / 10) ; 
                String result = String.valueOf(formula);
            }
        }

    }   

    private OnClickListener btnDisplay = new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            RadioButton rb = (RadioButton) v;
            Toast.makeText(second.this, rb.getText(), result, Toast.LENGTH_SHORT).show();
        }
    };
}
4

2 に答える 2

2
package com.example.radiobuttongroup;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.Toast;

import com.example.radiobuttongroup.R.id;

public class MainActivity extends Activity {

    RadioButton rd1, rd2, rd3;
    Button btn1;
    int type;
    String title;
    EditText input;
    AlertDialog.Builder editalert;
    AlertDialog alertd;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rd1 = (RadioButton) findViewById(id.radioButton1);
        rd2 = (RadioButton) findViewById(id.radioButton2);
        rd3 = (RadioButton) findViewById(id.radioButton3);
        btn1 = (Button) findViewById(id.button1);



        rd1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                rd2.setChecked(false);
                rd3.setChecked(false);
                type = 1;
                title = "cm to m";
            }
        });

        rd2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                rd1.setChecked(false);
                rd3.setChecked(false);
                type = 2;
                title = "m to cm";

            }
        });

        rd3.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                rd2.setChecked(false);
                rd1.setChecked(false);
                type = 3;
                title = "mm to cm";
            }
        });

        btn1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                calculate(title, type);

            }
        });
    }

    void calculate(String title, final int type) {
        try {

            editalert = new AlertDialog.Builder(MainActivity.this);
            alertd = editalert.create();
            editalert.setTitle("Calculator");
            editalert.setMessage(title);
            input = new EditText(MainActivity.this);
            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.FILL_PARENT,
                    LinearLayout.LayoutParams.FILL_PARENT);
            input.setLayoutParams(lp);
            input.setText("1000");
            editalert.setView(input);

            editalert.setPositiveButton("Convert",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,
                                int whichButton) {
                            int value = Integer.valueOf(input.getText().toString());

                            switch (type) {
                            case 1:
                                Toast.makeText(
                                        MainActivity.this,
                                        String.valueOf(value / 100),
                                        Toast.LENGTH_LONG).show();
                                dialog.cancel();
                                alertd.dismiss();
                                break;

                            case 2:
                                Toast.makeText(MainActivity.this,
                                        String.valueOf(value * 100),
                                        Toast.LENGTH_LONG).show();
                                dialog.cancel();
                                alertd.dismiss();
                                break;

                            case 3:
                                Toast.makeText(MainActivity.this,
                                        String.valueOf(value / 100),
                                        Toast.LENGTH_LONG).show();
                                dialog.cancel();
                                alertd.dismiss();
                                break;
                            default:
                                break;
                            }

                        }
                    });
            editalert.show();
        } catch (Exception e) {
            Log.v("hata", e.toString());
        }
    }
}
于 2012-11-18T00:59:27.417 に答える
0

RadioGroupを使用して、RadioGroup.OnCheckedChangeListenerを設定してみてください。

グローバルを使用して、ユーザーが の選択を変更するたびにリスナーintのパラメータに設定します。checkedIdRadioButton

[変換] ボタンをクリックすると、ブロックRadioButton内で最後に選択されたID を使用して、使用する変換を決定します。switch

于 2012-11-18T01:15:36.900 に答える