自定义片段中的CastClassException无法正常工作

Betun Herrera Alanis

所以我有此代码,并且出现在logcat中的错误。由于某种原因,它显示用于我的自定义片段的强制转换im出现错误。

我在询问之前进行了搜索,并尝试了所有方法:

导入v4.support.fragment

检查清单,看看那里是否没有声明

在我的主要班级中扩展Fragmentactivity

我仍然有,请问有什么想法吗?

片段代码:

import java.util.Random;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

public class TapFragment extends Fragment {

private Button[] _Btns_SinUso;
private Button[] _Btns_AUsar;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View RootView = inflater.inflate(R.layout.fragment_buttons, container,
            false);
    setLayout(RootView);
    return RootView;
}

public void setLayout(View v) {
    int Dif = GameManager.readPreferences(getActivity(),
            GameManager.KEY_DIF);
    switch (Dif) {
    case GameManager.GAMEDIF_MED:
        _Btns_AUsar = new Button[GameManager.SIZE_5X5.length];
        _Btns_SinUso = new Button[GameManager.T5X5_UNUSED.length];
        for (int i = 0; i < _Btns_AUsar.length; i++)
            _Btns_AUsar[i] = (Button) v
                    .findViewById(GameManager.SIZE_5X5[i]);
        for (int i = 0; i < _Btns_SinUso.length; i++) {
            _Btns_SinUso[i] = (Button) v
                    .findViewById(GameManager.T5X5_UNUSED[i]);
            _Btns_SinUso[i].setVisibility(View.GONE);
        }
        break;
    }
}

主要活动代码:

import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class Game extends FragmentActivity {

    private Activity _Actividad;
    private boolean _StartGame;
    private Button _Btn_Indicator;
    private int _GM, _Dif, _Multi, _GT, _TimeReady, _Sc, _PPH, _ValorCorrecto,
            _Combo;
    TapFragment _FragButtons;
    private TextView _TxtVw_Score, _TxtVw_Timer;
    private Timer _C = new Timer();
    private String _IniciarTxt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);
       _FragButtons = (TapFragment) getSupportFragmentManager().findFragmentById(R.id.Fr_ButtonContainer);
    // _FragButtons.setColors();
    // setGame();
    declare();

    // Shader textShader=new LinearGradient(0, 0, 0, 20,
    // new int[]{Color.GREEN,Color.BLUE},
    // new float[]{0, 1}, TileMode.CLAMP);
    // _BtnTap=(Button) findViewById(R.id.Btn_Tap1);
    // _BtnTap.getPaint().setShader(textShader);

}

public void declare() {
    // DECLARACION
    _Sc = 0;
    _TimeReady = 4;
    _StartGame = false;
    _Actividad = Game.this;
    _Dif = GameManager.readPreferences(_Actividad, GameManager.KEY_DIF);
    _PPH = GameManager.readPreferences(_Actividad, GameManager.KEY_PPH);
    _Multi = GameManager.readPreferences(_Actividad, GameManager.KEY_MULTI);
    _GM = GameManager.readPreferences(_Actividad, GameManager.KEY_MODE);
    _TxtVw_Score = (TextView) findViewById(R.id.TxtVw_Score);
    _TxtVw_Timer = (TextView) findViewById(R.id.TxtVw_Timer);
    _Btn_Indicator = (Button) findViewById(R.id.Btn_Indicator);
    _IniciarTxt = getResources().getString(R.string.WordGo);
    switch (_GM) {
    case GameManager.GAMETYPE_1MIN:
        _GT = 61;
        break;
    case GameManager.GAMETYPE_100T:
        _GT = -1;
        break;
    }
}

主文件的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/ReLa_Main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.albertoha94.games.Tap.Game"
tools:ignore="MergeRootFrame" >

<TextView
    android:id="@+id/TxtVw_Timer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:text="0"
    android:textAppearance="?android:attr/textAppearanceLarge"
    tools:ignore="HardcodedText" />

<TextView
    android:id="@+id/TxtVw_Score"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/TxtVw_Timer"
    android:text="@string/WordScore"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<fragment
    android:id="@+id/Fr_ButtonContainer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/adGame"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/TxtVw_Score"
    class="com.albertoha94.games.Tap.TapFragment" />
</RelativeLayout>

LOGCAT:

        12-11 00:04:23.865: E/AndroidRuntime(12884): FATAL EXCEPTION: main
    12-11 00:04:23.865: E/AndroidRuntime(12884): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.albertoha94.games.Tap/com.albertoha94.games.Tap.Game}: java.lang.ClassCastException: com.albertoha94.games.Tap.TapFragment
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1735)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1754)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at android.app.ActivityThread.access$1500(ActivityThread.java:156)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1000)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at android.os.Handler.dispatchMessage(Handler.java:130)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at android.os.Looper.loop(SourceFile:351)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at android.app.ActivityThread.main(ActivityThread.java:3821)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at java.lang.reflect.Method.invokeNative(Native Method)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at java.lang.reflect.Method.invoke(Method.java:538)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at dalvik.system.NativeStart.main(Native Method)
    12-11 00:04:23.865: E/AndroidRuntime(12884): Caused by: java.lang.ClassCastException: com.albertoha94.games.Tap.TapFragment
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at com.albertoha94.games.Tap.Game.onCreate(Game.java:48)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1699)
    12-11 00:04:23.865: E/AndroidRuntime(12884):    ... 11 more

According to the logcat, my error happens in the onCreate() Method, when im casting my fragment.

编辑 - - - - - - - - - - -

我尝试了使用Kristy所说的解决方案的解决方案,并且出现了一个新错误,关于无法膨胀:

12-11 22:33:04.108: E/AndroidRuntime(16353): FATAL EXCEPTION: main
12-11 22:33:04.108: E/AndroidRuntime(16353): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.albertoha94.games.Tap/com.albertoha94.games.Tap.Game}: android.view.InflateException: Binary XML file line #68: Error inflating class com.albertoha94.games.Tap.TapFragment
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1735)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1754)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.app.ActivityThread.access$1500(ActivityThread.java:156)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1000)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.os.Handler.dispatchMessage(Handler.java:130)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.os.Looper.loop(SourceFile:351)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.app.ActivityThread.main(ActivityThread.java:3821)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at java.lang.reflect.Method.invokeNative(Native Method)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at java.lang.reflect.Method.invoke(Method.java:538)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at dalvik.system.NativeStart.main(Native Method)
12-11 22:33:04.108: E/AndroidRuntime(16353): Caused by: android.view.InflateException: Binary XML file line #68: Error inflating class com.albertoha94.games.Tap.TapFragment
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.view.LayoutInflater.createView(LayoutInflater.java:539)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:601)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:654)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.view.LayoutInflater.inflate(LayoutInflater.java:439)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.view.LayoutInflater.inflate(LayoutInflater.java:351)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.view.LayoutInflater.inflate(LayoutInflater.java:307)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:250)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.app.Activity.setContentView(Activity.java:1693)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at com.albertoha94.games.Tap.Game.onCreate(Game.java:48)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1699)
12-11 22:33:04.108: E/AndroidRuntime(16353):    ... 11 more
12-11 22:33:04.108: E/AndroidRuntime(16353): Caused by: java.lang.NoSuchMethodException: TapFragment(Context,AttributeSet)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at java.lang.Class.getMatchingConstructor(Class.java:674)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at java.lang.Class.getConstructor(Class.java:503)
12-11 22:33:04.108: E/AndroidRuntime(16353):    at android.view.LayoutInflater.createView(LayoutInflater.java:511)
12-11 22:33:04.108: E/AndroidRuntime(16353):    ... 21 more
Betun Herrera Alanis

好吧,我是个白痴。原来您的两种方法都是正确的。我最初将TapFragment和Game类放在一起(TapFragment在Game里面),当我决定用不同的.java文件分隔类时,我从TapFragment中剪切了代码并将其粘贴到一个新文件中,但我完全忘了擦除该类那是在Game类内部的,剩下一个空的类。

public TapFragment extends Fragment{}

由于这一行代码仍然存在,因此我认为程序选择了该行而不是我想要的行,因此我擦除了这一行,代码就起作用了。谢谢n_n

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

aurelia中的自定义属性无法正常工作?

来自分类Dev

自定义控件中的VisualStateGroup无法正常工作

来自分类Dev

自定义单元中的UIImageView无法正常工作

来自分类Dev

Django中的自定义分页无法正常工作

来自分类Dev

Java中的自定义排序无法正常工作

来自分类Dev

JustGage中的自定义颜色无法正常工作

来自分类Dev

addFirst方法在自定义的linkedList中无法正常工作

来自分类Dev

自定义字段排序在 WordPress 中无法正常工作

来自分类Dev

jQuery自定义日期功能无法正常工作?

来自分类Dev

自定义助手无法正常工作

来自分类Dev

自定义ColorEditor在Color结构上无法正常工作

来自分类Dev

自定义equals()方法无法正常工作

来自分类Dev

为什么我的自定义PermissionEvaluator无法正常工作?

来自分类Dev

iOS 8自定义键盘UIScrollview无法正常工作

来自分类Dev

自定义RecyclerClickListener对于多个onClicks无法正常工作

来自分类Dev

使用Tableview的自定义Xib单元无法正常工作

来自分类Dev

Cloudwatch自定义事件SQS无法正常工作

来自分类Dev

Excel自定义日历功能无法正常工作

来自分类Dev

自定义帮助程序无法正常工作

来自分类Dev

自定义确认弹出窗口无法正常工作

来自分类Dev

带有自定义EditText的AdjustResize无法正常工作

来自分类Dev

使用自定义指令时,ngShow无法正常工作

来自分类Dev

Bootstrap的自定义CSS无法正常工作

来自分类Dev

自定义适配器notifyDataSetChanged无法正常工作

来自分类Dev

自定义equals()方法无法正常工作

来自分类Dev

自定义相似度类Solr无法正常工作

来自分类Dev

自定义分析器无法正常工作Elasticsearch

来自分类Dev

使用自定义密钥的数据联接无法正常工作

来自分类Dev

自定义模糊无法正常工作[AngularJS]

Related 相关文章

  1. 1

    aurelia中的自定义属性无法正常工作?

  2. 2

    自定义控件中的VisualStateGroup无法正常工作

  3. 3

    自定义单元中的UIImageView无法正常工作

  4. 4

    Django中的自定义分页无法正常工作

  5. 5

    Java中的自定义排序无法正常工作

  6. 6

    JustGage中的自定义颜色无法正常工作

  7. 7

    addFirst方法在自定义的linkedList中无法正常工作

  8. 8

    自定义字段排序在 WordPress 中无法正常工作

  9. 9

    jQuery自定义日期功能无法正常工作?

  10. 10

    自定义助手无法正常工作

  11. 11

    自定义ColorEditor在Color结构上无法正常工作

  12. 12

    自定义equals()方法无法正常工作

  13. 13

    为什么我的自定义PermissionEvaluator无法正常工作?

  14. 14

    iOS 8自定义键盘UIScrollview无法正常工作

  15. 15

    自定义RecyclerClickListener对于多个onClicks无法正常工作

  16. 16

    使用Tableview的自定义Xib单元无法正常工作

  17. 17

    Cloudwatch自定义事件SQS无法正常工作

  18. 18

    Excel自定义日历功能无法正常工作

  19. 19

    自定义帮助程序无法正常工作

  20. 20

    自定义确认弹出窗口无法正常工作

  21. 21

    带有自定义EditText的AdjustResize无法正常工作

  22. 22

    使用自定义指令时,ngShow无法正常工作

  23. 23

    Bootstrap的自定义CSS无法正常工作

  24. 24

    自定义适配器notifyDataSetChanged无法正常工作

  25. 25

    自定义equals()方法无法正常工作

  26. 26

    自定义相似度类Solr无法正常工作

  27. 27

    自定义分析器无法正常工作Elasticsearch

  28. 28

    使用自定义密钥的数据联接无法正常工作

  29. 29

    自定义模糊无法正常工作[AngularJS]

热门标签

归档