سؤال

ولدي سؤال بشأن إطلاق أنشطة جديدة. انها تتلخص في ذلك. لدي 3 علامات على وجهة نظر

A) contains gMap activity
 B) camera activity
 C) some random text fields.

والشرط هو أن تطبيق يعمل في وضع عمودي.

وتعمل جميع علامات التبويب 3 كما هو متوقع ث / باستثناء كاميرا معاينة السطحية (B). يتم استدارة 90 درجة. أنها الطريقة الوحيدة لجعله الصحيح هو وضع التطبيق إلى المشهد الذي يلقي كل ما عندي من علامات التبويب حولها، وهي جميلة غير قابلة للتطبيق من ذلك بكثير.

وبلدي الحل هو: استبدال

والنشاط الكاميرا مع النشاط العادي الذي فارغ ث / باستثناء

Intent i = new Intent(this,CameraActivity.class);
    startActivity(i);

وهذه تطلق بلدي CameraActivity. وهذا يعمل بشكل جيد. كان علي أن أفعل تخطيط الخطي وتشمل 3 الصور التي تبدو وكأنها علامات حقيقية، حتى أتمكن من محاولة لمحاكاة عملية من علامات التبويب في حين تناوب الشاشة لالمناظر الطبيعية والحفاظ على مرئيات كما صورة. يمكن للمستخدم النقر واحدة من الصور (أزرار) لعرض علامة التبويب التالية. هذه هي مشكلتي. يجب أن خروج بلدي 'النشاط كاميرا "العودة إلى" النشاط فارغ "في علامة تبويب، حيث ينبغي أن تفسر لانقر فوق علامة التبويب desiered من صورة بلدي.

والشيء الرئيسي هو، عندما يعود، فإنه يعود إلى فارغة (أسود) الصفحة تحت علامة تبويب (لأنه 'فارغ'). كيف يمكنني التقاط الحدث عودة إلى الصفحة التي تسمى النشاط، ومن ثم نرى ما هي الإجراءات التي يؤدونها؟

ويمكنني تعيين onclicklistener أين يمكنني الرد على علامات التبويب وهمية (صور) يتم النقر للخروج من النشاط الكاميرا. عند الخروج، يجب تحديث التبويب ذلك هذا هو المكان الذي العودة. أي اقتراحات؟

شكرا،

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

المحلول

وسوف أركز على الإجابة كيفية حل workround بحيث أنه يتصرف على النحو الذي تريد.

لالتقاط الإجراءات التي يتم تنفيذها على آخر واحد في آخر يتطلب ثلاث خطوات.

وإطلاق آخر ثانوي (الخاص بك الكاميرا آخر ') باعتباره subactivity باستخدام startActivityForResult بدلا من startActivity.

Intent i = new Intent(this,CameraActivity.class);    
startActivityForResult(i, STATIC_INTEGER_VALUE);

وضمن subactivity (الكاميرا آخر)، بدلا من مجرد إغلاق آخر عندما ينقر المستخدم على الصورة علامة التبويب مختلفة، تحتاج إلى إنشاء نية جديدة وتشمل مؤشر علامة التبويب لعرض عند العودة إلى التطبيق الأم باستخدام إضافات ربطة. لتمريرها إلى setResult دعوة الوالد قبل استدعاء finish لإغلاق آخر الكاميرا.

resultIntent = new Intent(null);
resultIntent.putExtra(PUBLIC_STATIC_STRING_IDENTIFIER, tabIndexValue);
setResult(Activity.RESULT_OK, resultIntent);
finish();

والخطوة الأخيرة هي في آخر الدعوة، تجاوز onActivityResult للاستماع لالاسترجاعات من النشاط الكاميرا. الحصول على اضافية من نية عاد لتحديد مؤشر علامة التبويب التي يجب أن تظهر.

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) {     
  super.onActivityResult(requestCode, resultCode, data); 
  switch(requestCode) { 
    case (STATIC_INTEGER_VALUE) : { 
      if (resultCode == Activity.RESULT_OK) { 
      int tabIndex = data.getIntExtra(PUBLIC_STATIC_STRING_IDENTIFIER);
      // TODO Switch tabs using the index.
      } 
      break; 
    } 
  } 
} 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top