Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置onTabChangedListner(Android)时出错_Java_Android_Tabs_Toast - Fatal编程技术网

Java 设置onTabChangedListner(Android)时出错

Java 设置onTabChangedListner(Android)时出错,java,android,tabs,toast,Java,Android,Tabs,Toast,我正在尝试设置一个onTabChangedListner(),我已经查看了Stack Overflow和其他一些站点,它们几乎都是一样的,所以我复制了这些代码。这是我当前的代码(这都在ononCreate()中) 我有3个错误: 未知实体OnTabChangeListner() 对于(com.mycompany.myapp.MainActivity.(匿名),java.lang.String,int),没有可应用的方法。 “android.widget.TabHost”中的方法android.w

我正在尝试设置一个
onTabChangedListner()
,我已经查看了Stack Overflow和其他一些站点,它们几乎都是一样的,所以我复制了这些代码。这是我当前的代码(这都在on
onCreate()
中)

我有3个错误:

  • 未知实体
    OnTabChangeListner()

  • 对于
    (com.mycompany.myapp.MainActivity.(匿名),java.lang.String,int),没有可应用的方法。

  • “android.widget.TabHost”中的方法
    android.widget.TabHost.setOnTabChangedListner(android.widget.TabHost.OnTabChangeListner)不能应用于(com.mycompany.myapp.MainActivity.(匿名))

  • 任何帮助都将不胜感激

    更新:这是我的整个onCreate,后面跟着一个onTabChanged方法:

    @凌驾 创建时的公共void(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main)


    您发布的代码部分看起来很干净,我从您发布的错误消息中找不到任何内容。可能您的项目中的多行代码对查找问题有点帮助


    请看下面的代码,检查您是否遵循任何模式

    TabHost tabs = (TabHost) body_view.findViewById(R.id.media_tabs);
        tabs.setup();
    
        tabs.addTab(tabs.newTabSpec(ALBUMS_TAB));
        tabs.addTab(tabs.newTabSpec(ARTISTS_TAB));
    
    
    tabs.setOnTabChangedListener(new OnTabChangeListener() {
          @Override
          public void onTabChanged(String tabId) {
            if (tabId.equals(ARTISTS_TAB)) {
              artistsFlipper.setDisplayedChild(0);
            } else if (tabId.equals(ALBUMS_TAB)) {
              albumsFlipper.setDisplayedChild(0);
            }
          }
     });
    


    上述解决方案来自

    请查看下面的链接,示例代码或实现非常清楚。您是否有“implements OnTabChangeListener”子句。我猜代码中的所有内容在通常语法方面几乎都是相同的。我现在已经实现了OnTabChangeListner,它给我一个错误,说OnTabChangeListner是未知实体。实际上TabActivity类已被弃用,我使用下面的链接快速实现了它。我在代码和Iäm能够在emulator中启动应用程序。此外,此链接将非常有用,
        TabHost tabHost = getTabHost();
    
        TabSpec cat1spec = tabHost.newTabSpec("Category 1");
        cat1spec.setIndicator("Category 1");
        cat1spec.setContent(R.id.tab1c);
    
        TabSpec cat2spec = tabHost.newTabSpec("Category 2");
        cat2spec.setIndicator("Category 2");
        cat2spec.setContent(R.id.tab2c);
        TabSpec cat3spec = tabHost.newTabSpec("Favourites");
        cat3spec.setIndicator("Favourites");
        cat3spec.setContent(R.id.tab3c);
    
        tabHost.addTab(cat1spec);
        tabHost.addTab(cat2spec);
        tabHost.addTab(cat3spec);
    
        getActionBar().setHomeButtonEnabled(true);
    
        tabHost.setOnTabChangedListener(this);
    }
    
    @Override
    public void onTabChanged(String tabId) {
        //Something will happends here
    }
    
    TabHost tabs = (TabHost) body_view.findViewById(R.id.media_tabs);
        tabs.setup();
    
        tabs.addTab(tabs.newTabSpec(ALBUMS_TAB));
        tabs.addTab(tabs.newTabSpec(ARTISTS_TAB));
    
    
    tabs.setOnTabChangedListener(new OnTabChangeListener() {
          @Override
          public void onTabChanged(String tabId) {
            if (tabId.equals(ARTISTS_TAB)) {
              artistsFlipper.setDisplayedChild(0);
            } else if (tabId.equals(ALBUMS_TAB)) {
              albumsFlipper.setDisplayedChild(0);
            }
          }
     });
    
    public class MyTabActivity extends TabActivity implements OnTabChangeListener {
    
        private TabHost tabHost;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            /* Your onCreate code here */
    
            tabHost.setOnTabChangedListener(this);
        }
    
        /* ... */
    
        @Override
        public void onTabChanged(String tabId) {
            /* Your code to handle tab changes */
        }
    }