2014-12-05 3 views
1

У меня есть два классаКак вызвать событие из основной деятельности из другого класса?

  • Первые являются основным видом деятельности для моего приложения ScreenSlideActivity.java &

  • Второго класс (ScreenSlidePageFragment.java) я использовал его для просмотра изображений и прокручивать Просмотр страницы пейджера

Что я хочу, когда я нажимаю на экран мобильного телефона, чтобы открыть меню опций, от основного действия ic не делать это, потому что я называю зрителя не его содержание:

public class ScreenSlideActivity extends FragmentActivity { 

    private static final int NUM_PAGES =604 ; 
    public static int cu_sura; 
    public static String Pac_name=""; 
    public static boolean me_r=false; 

    private ViewPager mPager; 


    private PagerAdapter mPagerAdapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.activity_screen_slide); 

     Pac_name=getApplicationContext().getPackageName(); 
     // Instantiate a ViewPager and a PagerAdapter. 
     mPager = (ViewPager) findViewById(R.id.pager); 
     mPagerAdapter = new ScreenSlidePagerAdapter(getFragmentManager()); 
     mPager.setAdapter(mPagerAdapter); 

     cu_sura=StoreManager.getCurrentSora(ScreenSlideActivity.this); 
     if(cu_sura == 0) 
     { 
      mPager.setCurrentItem(604); 
     } 
     else 
     { 
      mPager.setCurrentItem(cu_sura); 
     } 

     mPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 
      @Override 
      public void onPageSelected(int position) { 


       invalidateOptionsMenu(); 

      } 
     }); 

     mPager.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View arg0, MotionEvent arg1) { 

       openOptionsMenu(); 
       return false; 

      } 
     }); 



    } 

и то, что я хочу, когда я называю onclicklistener во втором классе, чтобы иметь реагировать от основной деятельности:

public class ScreenSlidePageFragment extends Fragment { 

    public static final String ARG_PAGE = "page"; 


    private int mPageNumber; 


    public static ScreenSlidePageFragment create(int pageNumber) { 
     ScreenSlidePageFragment fragment = new ScreenSlidePageFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(ARG_PAGE, pageNumber); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    public ScreenSlidePageFragment() { 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mPageNumber = getArguments().getInt(ARG_PAGE); 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // Inflate the layout containing a title and body text. 
     ViewGroup rootView = (ViewGroup) inflater 
       .inflate(R.layout.fragment_screen_slide_page, container, false); 


     ScreenSlideActivity.cu_sura=mPageNumber; 
     int num=(mPageNumber -605)*-1; 
     String name="p"+num; 

     int imgId = getResources().getIdentifier(name, "drawable",com.bilal.read_quran.ScreenSlideActivity.Pac_name); 
     // Bitmap b = BitmapFactory.decodeResource(getResources(), imgId); 
     ((ImageView) rootView.findViewById(R.id.imageView1)).setImageResource(imgId); 
     ((ImageView) rootView.findViewById(R.id.imageView1)).setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       ScreenSlideActivity.me_r=true; 


      } 
     }); 

     // Set the title view to show the page number. 
     /* ((TextView) rootView.findViewById(android.R.id.text1)).setText(
       getString(R.string.title_template_step, mPageNumber + 1)); 
*/ 
     return rootView; 
    } 

так Могу ли я получить какое-либо решение ???

ответ

0

модель попытка Observer

говорят, определить интерфейс

public interface OnSomethingHappenedListener{ 
     void onHappen(); 
    } 

и пусть активность реализации.

В объекте вызывающего объекта добавьте атрибут OnSomethingHappenedListener. Задайте этот атрибут для Activity.

Когда происходит «что-то», вызовите метод onHappen() слушателя

+0

он не работает :( – BilalMarzouk

Смежные вопросы