سؤال

لذلك كنت أحاول إنشاء قائمة في تطبيق يحتوي على عنصر واحد.يؤدي النقر فوق عنصر القائمة هذا إلى نقلك إلى نشاط آخر.لذا، فأنا أبدأ نشاطًا فرعيًا حول النقر على عنصر القائمة هذا.

المشكلة هنا هي أنني يجب أن أحدد نيتي في onCreate() طريقة نشاطي الرئيسي، ولكنني بحاجة إلى هذه النية في بلدي onOptionItemSelected() الطريقة التي هي خارج onCreate() طريقة.كيف أقوم بهذا العمل؟طريقة onCreate() الخاصة بي:

public void onCreate(Bundle savedInstanceState) { 
   Intent myIntent=new Intent(mainActivity.this,secondActivityt.class);
} 

طريقة onOptionsItemSelected() الخاصة بي:

public boolean onOptionsItemSelected(MenuItem item){
   if(item.getItemId()==R.id.aboutbtn){
      startActivity(myIntent);
}

لذلك أنا هنا غير قادر على الوصول myIntent.هل هناك على أية حال أستطيع أن أعلن النية خارج onCreate الطريقة وما زلت أجعل البرنامج يعمل، أو على أي حال يمكنني الوصول إلى الهدف خارج onCreate طريقة؟

هل كانت مفيدة؟

المحلول

يجب أن يكون الأمر سهلاً جدًا، ما عليك سوى الإعلان عن متغير فئة خاصة وتخزين نيتك في هذا النوع

public class MyActivity extends Activity{
   private Intent myIntent;

   public void onCreate(...){
      ...
      myIntent = new Intent(...);
   }


   public boolean onOptionsItemSelected(MenuItem item){
      ...
      //use the myIntent here
   }

}

لم أجربه الآن، ولكني لا أرى أي سبب لعدم نجاح ذلك، إلا إذا لم أفهم مشكلتك بوضوح :)

فقط كملاحظة جانبية.ربما ينبغي عليك أيضًا إلقاء نظرة على دورة حياة النشاط، وتحديد الحدث (onCreate، onResume، onStart، onDestroy،...) الذي يتم تشغيله.الشكل التالي مأخوذ من مطوري أندرويد يصفها بشكل أفضل:enter image description here

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top