1

ここの初心者。私のアプリはFCが起動したばかりなので、デザインに困惑しています。アクティビティ内にポップアップメニュー(PopupWindowとListView)を作成したかったので、2つのXMLを作成しました。1つはアクティビティ用、もう1つはダミーメニュー(menu_dummy.xml)用です。現在の問題コードは次のようになっています。

...

    mSet = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    mPopup = mSet.inflate(R.layout.menu_dummy, null, false);
    Resources base = getResources();
    ListView m = (ListView)findViewById(R.id.menu_popup);
    String[] items = new String[]{base.getString(R.string.accounts), base.getString(R.string.about)};
    ArrayAdapter<String> lstItems = new ArrayAdapter<String>(this,
              android.R.layout.simple_list_item_1, android.R.id.text1, items);
    m.setAdapter(lstItems);

...

コードを実行すると、R.javaに登録されているにもかかわらず、ListView m(menu_popup、menu_dummy.xmlの下)が常にnullを返すことがわかりました。私はここで何かを逃しましたか?

4

2 に答える 2

0

交換:

ListView m = (ListView)findViewById(R.id.menu_popup);

と:

ListView m = (ListView)mPopup.findViewById(R.id.menu_popup);
于 2012-11-19T15:04:13.637 に答える
0

レイアウトを膨らませていると思いますが、mへの参照を取得するために膨らませたレイアウトを使用していません。そのため、 Androidはmenu_popup現在のレイアウトで検索しようとしているため、nullを返します。

このセクションを変更します。

ListView m = (ListView)findViewById(R.id.menu_popup);

に:

ListView m = (ListView)mPopup.findViewById(R.id.menu_popup);

ここで、に格納されている膨張への参照を使用するため、menu_popup下にある参照を取得する必要があります。menu_dummymenu_dummymPopup

于 2012-11-19T15:15:25.863 に答える