Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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 如何在CordovaActivity中使用TabHost?_Java_Android_Cordova_Android Tabhost - Fatal编程技术网

Java 如何在CordovaActivity中使用TabHost?

Java 如何在CordovaActivity中使用TabHost?,java,android,cordova,android-tabhost,Java,Android,Cordova,Android Tabhost,我有这个示例cordova应用程序,我正在尝试将TabHost添加到其中。当我运行它时,它崩溃了,logcat说: java.lang.RuntimeException:无法启动活动 组件信息{io.cordova.hellocordova/io.cordova.hellocordova.main活动}: java.lang.NullPointerException:尝试调用虚拟方法“void” 空对象引用上的android.widget.TabHost.setup() 这是我的班级: publ

我有这个示例cordova应用程序,我正在尝试将TabHost添加到其中。当我运行它时,它崩溃了,logcat说:

java.lang.RuntimeException:
无法启动活动 组件信息{
io.cordova.hellocordova/io.cordova.hellocordova.main活动
}:
java.lang.NullPointerException:
尝试调用虚拟方法“void” 空对象引用上的android.widget.TabHost.setup()

这是我的班级:

public class MainActivity extends CordovaActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        Resources ressources = getResources();
        TabHost tabs = (TabHost)this.findViewById(R.id.tabhost);
        tabs.setup();

        Intent intentAndroid = new Intent().setClass(this, Utilitites.class);
        TabSpec tabSpecAndroid = tabs
                .newTabSpec("Utilities")
                .setIndicator("", ressources.getDrawable(R.drawable.ic_delete))
                .setContent(intentAndroid);

        // Apple tab
        Intent intentApple = new Intent().setClass(this, Locations.class);
        TabSpec tabSpecApple = tabs
                .newTabSpec("Locations")
                .setIndicator("", ressources.getDrawable(R.drawable.ic_delete))
                .setContent(intentApple);

        tabs.addTab(tabSpecAndroid);
        tabs.addTab(tabSpecApple);

        // Set by <content src="index.html" /> in config.xml
        // loadUrl(launchUrl);
    }
}
公共类MainActivity扩展了CordovaActivity
{
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Resources ressources=getResources();
TabHost tabs=(TabHost)this.findviewbyd(R.id.TabHost);
tabs.setup();
Intent intentAndroid=new Intent().setClass(这是utilities.class);
TabSpec tabSpecAndroid=tabs
.newTabSpec(“公用事业”)
.setIndicator(“,resources.getDrawable(R.drawable.ic_delete))
.setContent(intentAndroid);
//苹果标签
Intent intentApple=new Intent().setClass(这个,Locations.class);
TabSpec tabSpecApple=tabs
.NETTABSPEC(“位置”)
.setIndicator(“,resources.getDrawable(R.drawable.ic_delete))
.setContent(intentApple);
tabs.addTab(tabSpecAndroid);
tabs.addTab(tabSpecApple);
//在config.xml中设置
//loadUrl(launchUrl);
}
}
这是因为类没有扩展
选项卡activity
。如果这样做,则无法运行
cordova活动
命令
loadUrl(launchUrl)


是否有办法在
CordovaActivity
中使用
TabHost

有关可能的解决方案,请参阅
TabActivity
不推荐使用,具体取决于您针对的API。此外,它还建议使用
FragmentTabHost
,您可以尝试将其放入布局中,然后继续使用
CordovaActivity
。您知道如何迁移到gradle吗?这个cordova项目没有gradle。你可以在网上找到资源切换到使用gradle,但我看不出切换到gradle与你的问题有什么关系。哇,在Android中添加标签的方法太多了,甚至让人对推荐的内容感到困惑。表示对选项卡使用操作栏。当你看到它的时候,它已经被弃用了。据我所知,您现在应该使用
表格布局
。您可以看到一个示例。此外,您不能导入这些类,因为您不能将android支持库作为依赖项包含在项目中。您需要将支持库添加为依赖项,类似于您可能将cordova添加为依赖项的方式。