الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار عن ربط RadioButton بمربع الكتابه

بدأه ~PuNiShEr~ في 25 يونيو 2011 · 8 رد · 995 مشاهدة · في Android
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

ياخوان انا سويت برنامج صغير جدا وهو حساب الدولار واليورو

لكن واجهتني مشكله وهي كيف اضع الشرط للـradioGroup ؟؟ < يعني اذا اختار دولار احوله على الدولار واذا يورو احوله على اليورو

وهذي الاكواد

Test22Activity.java

package coom.aao;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class Test22Activity extends Activity {
	Button b1;
	EditText ed1;
	RadioButton bt1,bt2,bt3;
	TextView tt1;
	RadioGroup radioGroup;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        radioGroup = (RadioGroup)findViewById(R.id.radioGroup);

        bt1=(RadioButton)findViewById(R.id.bt1);
        bt2=(RadioButton)findViewById(R.id.bt2);
        b1=(Button)findViewById(R.id.b1);
        ed1=(EditText)findViewById(R.id.ed1);
    }

}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <RadioGroup
    android:layout_height="wrap_content" 
	android:layout_width="fill_parent"  
	android:id="@+id/radioGroup"
	>
<RadioButton 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:text="يورو"
android:id="@+id/bt1" 
/>
<RadioButton 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:text="دولار"
android:id="@+id/bt2"
/>
</RadioGroup>

<EditText android:id="@+id/ed1" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:inputType="phone">
    <requestFocus></requestFocus>
</EditText>
<Button 
android:text="احسب" 
android:id="@+id/b1" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content">
</Button>
<TextView 
android:id="@+id/tt1" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
/>
</LinearLayout>

وان شاء الله يكون السؤال واضح

#2
		b1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				String selected = "";
				switch (radioGroup.getCheckedRadioButtonId()) {
				case R.id.bt1:
					selected = "euro";
					break;
				case R.id.bt2:
					selected = "dollar";
					break;
				default:
					selected = "None";
					break;
				}

				Log.i("Radio", selected);

			}
		});

و اضف الى ملف ال XML في تعريف ال Radio بتاع الدولار ليكون الحالة الاولية له Checked

التالي:

android:checked="true"

ليصبح

		<RadioButton android:layout_height="wrap_content"
			android:layout_width="fill_parent" android:text="دولار" android:id="@+id/bt2" android:checked="true"/>
1
#3

مشكوور ياخي على ردك ولكن انا اقصد اني ابيه اذا اختار المستخدم دولار يتم تنفيذ العملية الحسابيه للدولار وطباعتها واذا اختار اليورو يتم عمل العمليه الحسابيه لليورو وطباعتها

وعملت هذه التعديلات ولم تنجح

وهذا الكود الي سويته

package coom.aao;

import android.app.Activity;
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.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class Test22Activity extends Activity implements OnClickListener{
        Button b1;
        EditText ed1;
        RadioButton bt1,bt2,bt3;
        TextView tt1;
        RadioGroup radioGroup;
        double d=3.85;
        double u=5.6;
        double t1=0;
        double zooz1=0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        radioGroup = (RadioGroup)findViewById(R.id.radioGroup);

        bt1=(RadioButton)findViewById(R.id.bt1);
        bt2=(RadioButton)findViewById(R.id.bt2);
        b1=(Button)findViewById(R.id.b1);
        ed1=(EditText)findViewById(R.id.ed1);
        tt1=(TextView)findViewById(R.id.tt1);


    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
                String selected = "";
                switch (radioGroup.getCheckedRadioButtonId()) {
                case R.id.bt1:
                        selected = "euro";

                        break;
                case R.id.bt2:
                        selected = "dollar";
                        break;
                default:
                        selected = "None";
                        break;
                }

                Log.i("Radio", selected);

        }
});
	b1.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ calculate(); }

	private void calculate() {
		// TODO Auto-generated method stub
		zooz1=Double.parseDouble(ed1.getText().toString());
		if(zooz1==1){
			t1=d*zooz1;
			tt1.setText(Double.toString(t1)+"ريال سعودي");
		}
		if(zooz1==1){
			t1=u*zooz1;
			tt1.setText(Double.toString(t1)+"ريال سعودي");
		}


	}});
	}


	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub

	}}

وان شاء الله يكون واضح

#4

متى ستتم العملية الحسابية؟؟؟

عندما يختار Button b1

او عندا يختار احدى ال RadioButtons !!!

#5

العمليه الحسابيه تتم بعد اختيار b1

البرنامج يبدا اول شي عند RadioButton bt1,bt2 بعد اختيار الدولار مثلا يتم تحويله الى العمليه الحسابيه للدولار اللي هي

zooz1=Double.parseDouble(ed1.getText().toString());
                if(zooz1==1){
                        t1=d*zooz1;
                        tt1.setText(Double.toString(t1)+"ريال سعودي");
                }
#6

الكود الاول الذي كتيته لك يقوم بما تريد

عند الضغط على b1 يتم تفعيله

حيث يقوم بالتأكد من العملة المختارة

لكن عليك ان تلغي اي OnClickListener من بعده

حيث ال View لا تستقبل اكثر من Listener واحد

#7

اضفت الكود الاول اللي انت حطيته وعدلت على السورس حقي ولم تنجح الطريقه معي ياليت لو تعلمني كيف اضيف الشرط بحيث انه لما يختار دولار تتنفذ عملية الدولار واليورو نفس الكلام وهذا الكود انا انتهيت منه لكن عمل البرنامج ولكن لم يعمل العمليات الحسابيه ولا يسوي شي وهذا الكود

package coom.aao;

import android.app.Activity;
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.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class Test22Activity extends Activity {
        Button b1;
        EditText ed1;
        RadioButton bt1,bt2,bt3;
        TextView tt1;
        RadioGroup radioGroup;
        double d=3.85;
        double u=5.6;
        double t1=0;
        double zooz1=0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        radioGroup = (RadioGroup)findViewById(R.id.radioGroup);

        bt1=(RadioButton)findViewById(R.id.bt1);
        bt2=(RadioButton)findViewById(R.id.bt2);
        b1=(Button)findViewById(R.id.b1);
        ed1=(EditText)findViewById(R.id.ed1);
        tt1=(TextView)findViewById(R.id.tt1);


    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
                String selected = "";
                switch (radioGroup.getCheckedRadioButtonId()) {
                case R.id.bt1:
                        selected = "euro";

                        break;
                case R.id.bt2:
                        selected = "dollar";
                        break;
                default:
                        selected = "None";
                        break;
                }

                Log.i("Radio", selected);

        }
});
	b1.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ calculate(); }

	private void calculate() {
		// TODO Auto-generated method stub
		zooz1=Double.parseDouble(ed1.getText().toString());
		if(zooz1==1){
			t1=d*zooz1;
			tt1.setText(Double.toString(t1)+"ريال سعودي");
		}
		if(zooz1==1){
			t1=u*zooz1;
			tt1.setText(Double.toString(t1)+"ريال سعودي");
		}


	}});
	}


}
#8
import android.app.Activity;
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.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class TestActivity extends Activity {
	Button b1;
	EditText ed1;
	RadioButton bt1, bt2, bt3;
	TextView tt1;
	RadioGroup radioGroup;
	double d = 3.85;
	double u = 5.6;
	double t1 = 0;
	double zooz1 = 0;

	int EURO_CURRENCY = 1;
	int DOLLAR_CURRENCY = 2;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		radioGroup = (RadioGroup) findViewById(R.id.radioGroup);

		bt1 = (RadioButton) findViewById(R.id.bt1);
		bt2 = (RadioButton) findViewById(R.id.bt2);
		b1 = (Button) findViewById(R.id.b1);
		ed1 = (EditText) findViewById(R.id.ed1);
		tt1 = (TextView) findViewById(R.id.tt1);

		b1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {

				int selectedCurrency = -1;
				switch (radioGroup.getCheckedRadioButtonId()) {
				case R.id.bt1:
					selectedCurrency = EURO_CURRENCY;

					break;
				case R.id.bt2:
					selectedCurrency = DOLLAR_CURRENCY;
					break;
				default:
					selectedCurrency = -1;
					break;
				}

				// Log.i("Radio", selected);
				calculate(selectedCurrency);

			}

			private void calculate(int selectedCurrency) {
				if (selectedCurrency != -1) {
					zooz1 = Double.parseDouble(ed1.getText().toString());
					if (selectedCurrency == EURO_CURRENCY) {
						// تتم العملية الحسابية المناسبة لتحويل النقود من يورو
						// الى ريال

					} else if (selectedCurrency == DOLLAR_CURRENCY) {
						// تتم العملية الحسابية المناسبة لتحويل النقود من دولار
						// الى ريال

					}
				}
			}
		});

	}

}

ان كانت مهاراتك الاساسية بالبرمجة ليست قوية

حاول ان تبدأ بلغة الجافا JavaSE و ثم انتقل للاندرويد

#9

مشكوووور اخوي

وانا الان مبتدء بالجافا

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…