عندما تستخدم switch
في الـ onItemClick
، يجب عليك استخدام break
بعد كل حالة لتجنب استمرار تنفيذ الحالات الأخرى. بدون break
، سيتم تنفيذ جميع الحالات بعد الحالة التي تم اختيارها. هناك أيضًا بعض التحسينات التي يمكنك تطبيقها في الكود لتحسين أداء التطبيق وجعله أكثر قابلية للصيانة، مثل استخدام String[]
بدلاً من ArrayList
لقائمة العناصر. إليك الكود المعدل:
javapublic class EastContent extends AppCompatActivity implements AdapterView.OnItemClickListener {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.east_content);
Intent iin= getIntent();
Bundle b = iin.getExtras();
String[] array={"good hai","achha nahi hai","achha cool hai","sdvvgsgvrsg"};
listView= (ListView) findViewById(R.id.listview);
ArrayAdapter adapter=new ArrayAdapter(this,R.layout.customtextview,R.id.textViewcustom,array);
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
switch (position){
case 0:
Toast.makeText(getApplication(),"good hai",Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(getApplication(),"achha nahi hai",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(getApplication(),"achha cool hai",Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(getApplication(),"sdvvgsgvrsg",Toast.LENGTH_SHORT).show();
break;
}
}
}
أتمنى أن يكون هذا الشرح واضحًا ومفيدًا. إذا كان لديك أي أسئلة أو استفسارات إضافية، فلا تتردد في طرحها.
المزيد من المعلومات
بالطبع! في الكود الذي قدمته، يتم استخدام switch
لعرض رسالة Toast
مخصصة لكل عنصر في قائمة الـ ListView
عند النقر عليه. ومع ذلك، هناك مشكلة في التنفيذ، حيث يتم عرض رسالة Toast
لكل العناصر بدون انقطاع.
السبب وراء هذا هو أنك نسيت استخدام break
بعد كل حالة case
، مما يؤدي إلى استمرار التنفيذ إلى الحالات التالية دون توقف. لحل هذه المشكلة، يجب عليك إضافة break
بعد كل حالة case
كما في الكود المعدل الذي قدمته في الرسالة السابقة.
أيضًا، لتحسين الأداء وجعل الكود أكثر فعالية، يمكنك استخدام String[]
بدلاً من ArrayList
لقائمة العناصر، خاصة إذا كانت القائمة ثابتة وغير متغيرة.