title: android: buttons created using button adapter is not in the right order
body: <p>new to android. I created 12 (3 rows, 4 columns) buttons in a GridView and I created a toast to display something after a button is pressed by following a tutorial. The buttons are displaying on the screen correctly, but the toast messages are not. When I press top left button, I get the bottom left toast. When I press middle left button, I get middle right toast. When I press bottom left button, I get top <strong>right</strong> toast. </p>
  
  <pre><code>Visually:
  
  button location:
  1 2 3 4
  5 6 7 8
  9 10 11 12
  
  toast message
  9 10 11 12
  8 7 6 5
  4 3 2 1
  </code></pre>
  
  <p>Here's the adapter code:</p>
  
  <pre><code>public class KeypadAdapter extends BaseAdapter {
      private Context mContext;
  
      // Declare button click listener variable
      private OnClickListener mOnButtonClick;
  
      // Method to set button click listener variable
      public void setOnButtonClickListener(OnClickListener listener) {
          mOnButtonClick = listener;
      }
  
      public KeypadAdapter(Context c) {
          mContext = c;
      }
  
      public int getCount() {
          return mButtons.length;
      }
  
      public Object getItem(int position) {
          return mButtons[position];
      }
  
      public long getItemId(int position) {
          return 0;
      }
  
      private KeypadButtons[] mButtons = { KeypadButtons.ADD,
              KeypadButtons.SUBTRACT, KeypadButtons.MULTIPLY,
              KeypadButtons.DIVIDE, KeypadButtons.DET, KeypadButtons.INV,
              KeypadButtons.POW2, KeypadButtons.POWN, KeypadButtons.TRANSPOSE,
              KeypadButtons.NORM1, KeypadButtons.NORM2, KeypadButtons.NORMINF };
  
      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
          Button btn;
          if (convertView == null) { // if it's not recycled, initialize some
                                      // attributes
              btn = new Button(mContext);
              KeypadButtons keypadButton = mButtons[position];
              if (keypadButton != KeypadButtons.DUMMY) {
                  btn.setOnClickListener(mOnButtonClick);
              }
  
              // Set CalculatorButton enumeration as tag of the button so that we
              // will use this information from our main view to identify what to
              // do
              btn.setTag(keypadButton);
          } else {
              btn = (Button) convertView;
          }
  
          btn.setText(mButtons[position].getText());
          return btn;
      }
  
  }
  </code></pre>
  
  <p>and here's the the activity code</p>
  
  <pre><code>public class MainActivity extends Activity {
      GridView mKeypadGrid;
      KeypadAdapter mKeypadAdapter;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          // Get reference to the keypad button GridView
          mKeypadGrid = (GridView) findViewById(R.id.gridView);
  
          // Create Keypad Adapter
          mKeypadAdapter = new KeypadAdapter(this);
  
          // Set adapter of the keypad grid
          mKeypadGrid.setAdapter(mKeypadAdapter);
  
          // Set button click listener of the keypad adapter
          mKeypadAdapter.setOnButtonClickListener(new OnClickListener() {
              @Override
              public void onClick(View v) {
                  Button btn = (Button) v;
                  // Get the KeypadButton value which is used to identify the
                  // keypad button from the Button's tag
                  KeypadButtons keypadButton = (KeypadButtons) btn.getTag();
  
                  // Process keypad button
                  ProcessKeypadInput(keypadButton);
              }
          });
  
          mKeypadGrid.setOnItemClickListener(new OnItemClickListener() {
              public void onItemClick(AdapterView&lt;?&gt; parent, View v,
                      int position, long id) {
  
              }
          });
  
      }
  
      protected void ProcessKeypadInput(KeypadButtons keypadButton) {
          // TODO Auto-generated method stub
          Toast.makeText(
                  MainActivity.this,
                  keypadButton.getText().toString() + " "
                          + keypadButton.toString(), Toast.LENGTH_SHORT).show();
  
  
      }
  }
  </code></pre>
  
  <p>At first it seems the order of the toasts are reversed. So I tried doing </p>
  
  <pre><code>KeypadButtons keypadButton = mButtons[mButtons.length - 1 - position];
  </code></pre>
  
  <p>That fixed the bottom two rows but he top row is still reversed. </p>
  
  <p>Thanks in advance.</p>