Как сделать метод onWindowFocusChanged (логическое значение), чтобы true (или вызов) в одной вкладке tablayout в Android? - PullRequest
1 голос
/ 07 марта 2012

как сделать так, чтобы метод onWindowFocusChanged (boolean) в true (или вызывал) на одной вкладке tablayout в Android.

Объяснение:

In tablayout onWindowFocusChanged () автоматически вызывается по умолчаниюактивность (true), но когда мы нажимаем / касаемся следующей вкладки (которая вызывает другую активность), не в состоянии вызвать onWindowFocusChanged () !!!!!!как вызвать onWindowFocusChanged () во второй вкладке?

исходный код:

public class TabTestActivity extends TabActivity {

        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.main);



            Resources res = getResources();

            TabHost tabHost = getTabHost();  

            TabHost.TabSpec spec;  

            Intent intent;  



            // Create an Intent to launch an Activity for the tab (to be reused)

            intent = new Intent().setClass(this, TabOne.class);



            // Initialize a TabSpec for each tab and add it to the TabHost

            spec = tabHost.newTabSpec("TabOne").setIndicator("TabOne",

                              res.getDrawable(R.drawable.ic_tab_One))

                          .setContent(intent);

            tabHost.addTab(spec);



            // Do the same for the other tabs

            intent = new Intent().setClass(this, TabTwo.class);

            spec = tabHost.newTabSpec("TabTwo").setIndicator("TabTwo",

                              res.getDrawable(R.drawable.ic_tab_az))

                          .setContent(intent);

            tabHost.addTab(spec);
            //tabHost.setCurrentTab(2);

        }


                  public void onWindowFocusChanged(boolean hasFocus) {

                    // TODO Auto-generated method stub

                     Toast.makeText(this, ""+hasFocus , Toast.LENGTH_LONG).show();

                       super.onWindowFocusChanged(hasFocus);

                    }
  }
 -----------------------------------------------------------------------------------------------------   

    public class TabOne extends Activity {

         public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);

                TextView textview = new TextView(this);

                textview.setText("This is the Coll tab");

                setContentView(textview);

            }

        @Override

        public void onWindowFocusChanged(boolean hasFocus) {

            // TODO Auto-generated method stub



            Toast.makeText(this, "On window One"+hasFocus , Toast.LENGTH_LONG).show();

            super.onWindowFocusChanged(hasFocus);

        }

    }

--------------------------------------------------------------------------    

    public class TabTwo extends Activity {

         public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);



                TextView textview = new TextView(this);

                textview.setText("This is the Coll tab");

                setContentView(textview);

            }



        @Override

        public void onWindowFocusChanged(boolean hasFocus) {

            // TODO Auto-generated method stub

            Toast.makeText(this, "On window TabTwo"+hasFocus , Toast.LENGTH_LONG).show();

            super.onWindowFocusChanged(hasFocus);


        }

  }

TabTwo (2ndTab) onWindowFocusChanged не вызывается во время выполнения действия TabTwo, пожалуйста, дайте решение.Я пытался предоставить tabHost.setFocusable (true);Я не работал !!!

1 Ответ

1 голос
/ 12 июля 2012

Вкладки в основном устарели. Вы должны использовать фрагменты вместо этого. Это точно решит вашу проблему.

См. https://stackoverflow.com/questions/9714650/converting-tabactivity-into-fragmentactivity для примера того, как это сделать.

...