البرمجة

تطبيق حاسبة بسيطة في Android

الكود الذي كتبته يحتوي على خطأ في الطريقة التي تقوم فيها بتحويل نص إلى عدد صحيح (Integer)، وذلك بسبب أنك تحاول استخراج النص من EditText في مرحلة مبكرة جدًا من دورة حياة النشاط (Activity) قبل أن يتم للمستخدم إدخال أي قيمة.

لحل هذا الخطأ، يجب أن تقوم بإجراء عملية تحويل النص إلى عدد داخل داخل داخل الدالة onClick التي يتم فيها استدعاء هذا التحويل، وذلك بعد أن يقوم المستخدم بإدخال قيمة داخل EditText.

هناك عدة طرق لتحقيق ذلك، وإليك كيف يمكنك تعديل الكود لحل المشكلة:

java
public class Main2Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); ImageButton imageButton = (ImageButton) findViewById(R.id.imageButton); ImageButton imageButton2 = (ImageButton) findViewById(R.id.imageButton2); ImageButton imageButton3 = (ImageButton) findViewById(R.id.imageButton3); ImageButton imageButton4 = (ImageButton) findViewById(R.id.imageButton4); ImageButton imageButton5 = (ImageButton) findViewById(R.id.imageButton5); ImageButton imageButton6 = (ImageButton) findViewById(R.id.imageButton6); ImageButton imageButton7 = (ImageButton) findViewById(R.id.imageButton7); ImageButton imageButton8 = (ImageButton) findViewById(R.id.imageButton8); ImageButton imageButton9 = (ImageButton) findViewById(R.id.imageButton9); final EditText editText = (EditText) findViewById(R.id.editText); final EditText editText2 = (EditText) findViewById(R.id.editText2); final EditText editText3 = (EditText) findViewById(R.id.editText3); final TextView textView50 = (TextView) findViewById(R.id.textView50); imageButton3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // تحقق من أن النص المدخل في editText ليس فارغًا if (!editText.getText().toString().isEmpty()) { // قم بتحويل النص إلى عدد صحيح داخل هذه الدالة onClick int dayNumber = Integer.parseInt(editText.getText().toString()); int a = dayNumber * 4; textView50.setText(String.valueOf(a)); } else { // إذا كان النص فارغًا، قم بعرض رسالة تنبيه للمستخدم Toast.makeText(Main2Activity.this, "الرجاء إدخال قيمة في الحقل", Toast.LENGTH_SHORT).show(); } } }); } }

بهذا التعديل، ستتحقق من أن النص المدخل في editText ليس فارغًا قبل تحويله إلى عدد صحيح، وإذا كان النص غير فارغ، ستقوم بإجراء العملية الحسابية كما تم في الكود السابق. وإذا كان النص فارغًا، ستقوم بعرض رسالة تنبيه للمستخدم.

المزيد من المعلومات

بالتأكيد! في الكود السابق، قمت بتعريف عدة متغيرات لعناصر واجهة المستخدم (ImageButton و EditText و TextView)، وربطتها بعناصر محددة في ملف التخطيط (activity_main2.xml) باستخدام findViewById.

عندما يتم النقر على imageButton3، يتم تنفيذ الكود داخل onClick، حيث يتم قراءة النص المدخل في editText وتحويله إلى عدد صحيح (dayNumber)، ثم يتم ضرب هذا العدد في 4 وعرض النتيجة في textView50 باستخدام setText.

كما تم إضافة شرط يتحقق من أن النص في editText ليس فارغًا قبل تحويله، وإلا سيتم عرض رسالة تنبيه للمستخدم باستخدام Toast.

يرجى ملاحظة أنه يجب التأكد من تعريف imageButton3 و textView50 في ملف التخطيط activity_main2.xml، وأن الأعداد التسلسلية لهذه العناصر تطابق التي تم استخدامها في findViewById في الكود Java.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر