java.lang.ClassCastException : casting an object, 给他的 parent

标签 java android layout android-fragmentactivity

我是一名 IOS 编码员,但我正在尝试学习一点点 android,但我遇到了问题。

我有以下类(class):

package com.example.fragmenttabhostdemo;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Tab1 extends Fragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        return inflater.inflate(R.layout.tab1, container, false);
    }
}

当我尝试运行它时,控制台显示:

java.lang.ClassCastException: com.example.fragmenttabhostdemo.Tab1 cannot be cast to android.support.v4.app.Fragment

对我做错了什么有什么想法吗?我认为,当我尝试为我的 android 应用程序布局制作 fragment Activity 并向主机添加一些选项卡时,就会出现问题:

protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

     tabHost = (FragmentTabHost) findViewById(R.id.tabhost);

     tabHost.setup(this, getSupportFragmentManager(), R.id.tabcontent);

     tabHost.addTab(tabHost.newTabSpec("Tab1").setIndicator("Lengueta 1"), Tab1.class, null);
     tabHost.addTab(tabHost.newTabSpec("Tab2").setIndicator("Lengueta 2"),
                           Tab2.class, null);
     tabHost.addTab(tabHost.newTabSpec("Tab3").setIndicator("Lengueta 3"),
                           Tab3.class, null);
   }

所以,我不知道我做错了什么。 任何其他轻松获得选项卡布局的想法,我就是做不到。

PD我正在尝试按照本教程进行操作: http://www.androidcurso.com/index.php/tutoriales-android-basico/32-unidad-2-diseno-de-la-interfaz-de-usuario-vistas-y-layouts/452-fragmenttabhost

最佳答案

你的提示是这部分:

android.support.v4.app.Fragment

您正在将常规 Fragment 转换为支持 Fragment。这很令人困惑,因为它们是两个同名的类,但位于不同的包中。本质上,如果您使用支持库,则应该坚持使用所有支持类型。考虑到这一点,在您的 Tab1 类中,对导入语句进行以下更改。

//import android.app.Fragment;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

关于java.lang.ClassCastException : casting an object, 给他的 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24148776/

相关文章:

java - SQL 语句应该返回 2 行,但只返回 1 行

android - org.json.JSONObject$1 类型的 'json key object' 处的值 null 无法转换为 JSONObject

java - 许多线程处于 IN_NATIVE 状态

java - 将日期从一个时区转换为本地时区

android - GooglePlay v19 模拟器抛出 "E/EGL_emulation﹕ Failed to establish connection with the host"等

java - 调整 JFrame 及其内部所有内容的大小

php - 动态 DIV 布局?

android - 将 TextView 添加到表面 View

java - 处理Java对象

android - 如何使用 ListView 选择来确定 Android 中另一个 ListView 中的列表?