2012-05-08 13 views
0

ここはスコープです。サブクラス化していくつかの問題にぶつかる基本クラスを作成しようとしています。 ListViewGridViewTextViewなどサブクラスのいずれかでオーバーライドできるようにビューを返すメソッドを作成したいと思います。それが可能かどうか、私が間違った方法で行っているのかどうかは確かですが、以下のコードです。ビューをベースコンテナとして使用Android

これは私のクラスのベース・ビュー方式である:ここで

View backViewController() 
{ 
    return null; 
} 

はサブクラスです:

@Override 
    View backViewController() 
{ 
    MenuList = (ListView) findViewById(R.id.backView); 
    return MenuList; 
} 

メニューリストは、私がサブクラスで作成したListViewいるとの代わりに使用しようとするとベースビュー。私が受け取っているエラーは、 "戻り値の型は互換性がありません"です。

+1

このコードがどのようにコンパイルされているかわかりません。 'MenuList'はクラスか変数ですか?もっとコードを投稿していただけますか? – Louth

+0

Java命名規則を遵守すれば、コードは読みにくいです。 http://java.about.com/od/javasyntax/a/nameconventions.htm – Snicolas

+0

MenuListはプライベートListViewですが、キャストクラスの例外が発生していますが、その理由はわかりません。 –

答えて

0

R.id.backViewはxmlレイアウトのListViewですか?

+0

いいえ、それはただの表示です。私はサブクラスを使うことができるように、ちょうどビューを持つことを望んでいましたが、それは不可能かもしれないように見え始めています。 –

+0

View to ListViewをキャストすることはできません... – ChristopheCVB

0

はい、これはmenuListが継承によってビューによって行われるためです。だから、エラーは別の場所にある必要があります、あなたの型階層をeclipseでチェックするか、正しいクラスをインポートしたことを確認してください。

+0

ありがとう、私はキャストクラスの例外を取得しているので、コードが動作する必要があるときにクラスキャストの例外を与える理由がわからない。リソースXMLファイルに問題はありますか?必要ならば、XMLと完全なJavaクラスの両方を投稿することができます –

+0

インポートを表示してください(そして、Java命名規則を読んで尊重し、eclipseのリファクタリング-rename-をメニューから使用してください) – Snicolas

関連する問題