title: How do I get a ListPopupWindow to work with a custom adapter?
body: <p>I want to display a simple array of strings in a ListPopupWindow that is shown on a button click. I'm running into problems however, as when I do some minimal setup of either an <code>ArrayAdapter&lt;String&gt;</code> or a custom-built adapter, I run into a resources not found exception when I go to show the popup window. Here is the code I'm using (with the stack trace after it). Any ideas as to what is happening?</p>
  
  <pre><code>public class AndroidSandboxActivity extends Activity {
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          final Button btn = (Button)findViewById(R.id.btn1);
          btn.setOnClickListener(new OnClickListener() {
              @Override
              public void onClick(View v) {
                  showListPopup(btn);
              }
          });
      }
  
      public void showListPopup(View anchor) {
          ListPopupWindow popup = new ListPopupWindow(this);
          popup.setAnchorView(anchor);
  
          ListAdapter adapter = new MyAdapter(this);
          popup.setAdapter(adapter);
          popup.show();
      }
  
      public static class MyAdapter extends BaseAdapter implements ListAdapter {
          private final String[] list = new String[] {"one","two","three"};
          private Activity activity;
          public MyAdapter(Activity activity) {
              this.activity = activity;
          }
  
          @Override
          public int getCount() {
              return list.length;
          }
  
          @Override
          public Object getItem(int position) {
              return list[position];
          }
  
          @Override
          public long getItemId(int position) {
              return position;
          }
  
          private static int textid = 1234;
          @Override
          public View getView(int position, View convertView, ViewGroup parent) {
              TextView text = null;
              if (convertView == null) {
                  LinearLayout layout = new LinearLayout(activity);
                  layout.setOrientation(LinearLayout.HORIZONTAL);
  
                  text = new TextView(activity);
                  text.setId(textid);
                  layout.addView(text);
                  convertView = layout;
              } else {
                  text = (TextView)convertView.findViewById(textid);
              }
              text.setText(list[position]);
              return convertView;
          }
      }
  }
  </code></pre>
  
  <p>And here's the stack trace (the thing that boggles my mind is that it says it's using an <code>ArrayAdapter</code> when I'm using my own custom adapter):</p>
  
  <pre><code>Thread [&lt;1&gt; main] (Suspended (exception Resources$NotFoundException))   
      Resources.loadXmlResourceParser(int, String) line: 2047 
      Resources.getLayout(int) line: 853  
      PhoneLayoutInflater(LayoutInflater).inflate(int, ViewGroup, boolean) line: 389  
      ArrayAdapter.createViewFromResource(int, View, ViewGroup, int) line: 375    
      ArrayAdapter.getView(int, View, ViewGroup) line: 366    
      ListPopupWindow$DropDownListView(AbsListView).obtainView(int, boolean[]) line: 2146 
      ListPopupWindow$DropDownListView.obtainView(int, boolean[]) line: 1156  
      ListPopupWindow$DropDownListView(ListView).measureHeightOfChildren(int, int, int, int, int) line: 1261  
      ListPopupWindow.buildDropDown() line: 1083  
      ListPopupWindow.show() line: 517    
      AndroidSandboxActivity.showListPopup() line: 41 
      AndroidSandboxActivity$1.onClick(View) line: 28 
      Button(View).performClick() line: 3122  
      View$PerformClick.run() line: 11942 
      ViewRoot(Handler).handleCallback(Message) line: 587 
      ViewRoot(Handler).dispatchMessage(Message) line: 92 
      Looper.loop() line: 132 
      ActivityThread.main(String[]) line: 4028    
      Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
      Method.invoke(Object, Object...) line: 491  
      ZygoteInit$MethodAndArgsCaller.run() line: 844  
      ZygoteInit.main(String[]) line: 602 
      NativeStart.main(String[]) line: not available [native method]  
  </code></pre>
  
  <p>Any help would be appreciated!</p>