1

XMLコードに問題があります。お役に立てれば幸いです。

私はこのパッケージにこのクラスを持っています:

package com.example.myview

public class CustomDialog extends DialogPreference {

    public CustomDialog(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    public CustomDialog(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }
}

そして、私はこの設定xmlファイルを持っています:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <com.example.myview.CustomDialog
        android:dialogMessage="Are you sure you wish delete you account"
        android:key="deleteAccountPreference"
        android:negativeButtonText="Cancel"
        android:positiveButtonText="Okay"
        android:summary="@string/preferences_deleteaccount_summary"
        android:title="@string/preferences_deleteaccount_title" />

</PreferenceScreen>

そして、コードを実行すると、次のエラーが発生します。

03-16 17:03:18.032: E/AndroidRuntime(20224): android.view.InflateException: Binary XML file line #4: Error inflating class com.example.myview.CustomDialog
...
03-16 17:03:18.032: E/AndroidRuntime(20224): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.myview.CustomDialog" on path: .

私の問題を要約すると、xmlファイルが参照しているパスを変更する方法、またはカスタムビューを拡張できない理由を理解したいと思います。

前もって感謝します :)

4

1 に答える 1

0

上で述べたのと本質的に同じ問題に遭遇しました。設定 xml ファイルのグラフィカル レイアウトと xml ビューを切り替えようとしたと思いますよね? 初期化の問題を回避するための安価な方法を次に示します (ClassNotFoundException の問題に似ているはずです)。

  1. xml で同様に参照されている既存のクラスをコピーします (別名 com. . .ClassName ... のようなものが xml にあり、「ClassName」の名前を CustomDialog に変更します (特定のケースでは))。
  2. これを行った後も、「クラスが見つかりません」というエラーが引き続き発生しました。プロジェクト全体を再構築しただけで、このエラーはなくなりました。新しく作成したウィジェットは、それに応じてグラフィカル レイアウトでレンダリングされます。

あなたが行った膨張エラーに遭遇するかどうかはまだわかりませんが、私の答えがまだいくらか役立つことを願っています. そうでない場合は申し訳ありませんが、これは実際にはスタックオーバーフローに関する私の最初の投稿であり、Androidに関しては確かにn00bです。私も進みながら学びます:)

于 2013-03-27T17:56:21.447 に答える