6

エラーが発生します

メソッド findViewById(int) はタイプ PM_section に対して未定義です

Expandable ListView を実装しようとしたとき。これはよくあるエラーだと思いますが、解決策を見つけるのに苦労しています。フラグメントなどを習得しようとしているのですが、始めてからずっと苦戦しています。私はかなりの検索を行い、多くの結果を見つけましたが、私の場合は役に立たないようです。

誰かが私に洞察を与えてくれたり、正しい方向に向けてくれたりしたら、とても感謝しています.

私の小さなテストクラスは以下です

public class PM_section extends Fragment {
//  CustomExpListView custExpListView;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        View V = inflater.inflate(R.layout.fragment_pm_section_test, container, false);

        CustomExpListView custExpListView = (CustomExpListView)
                this.findViewById(R.id.ExpandableListView01);
        return V;   
    }// end on create
}

CustomExpListView クラスは、Android サンプル プロジェクトからほとんどコピーして貼り付けたものであり、満足しており、問題はありません。

助けてくれてありがとう。

4

2 に答える 2

10

R.id.ExpandableListView01が の一部である場合はR.layout.fragment_pm_section_test、 に置き換えthisますV

CustomExpListView custExpListView = (CustomExpListView)
                V.findViewById(R.id.ExpandableListView01);

Fragments にはメソッドがありませんfindViewById()Viewレイアウトからすべてを取得するには、代わりにインフレートを使用する必要があります。

Java 命名規則の使用も検討してください。変数は小文字で始まり、クラスは大文字で始まります。

于 2013-01-21T22:37:35.180 に答える
3

メソッドgetView()を呼び出してフラグメントのルート ビューを取得するだけです。findViewById()

getView().findViewById(R.id.ExpandableListView01);

findViewById()クラス自体にそのようなFragmentメソッドがないため、それがないと使用できません。

于 2013-01-21T22:39:58.873 に答える