Autore Topic: Visualizzare custom Expandablelist dopo click su un item del menu  (Letto 292 volte)

Offline Dyango

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S 2
0
ciao ragazzi io vorrei visualizzare una mia Expandablelist dopo il click su un item del menu, per aiutarmi ho utilizzato questa guida:
http://android-adda.blogspot.com/2011/06/custom-expandable-listview.html
pero qui Expandablelist è contenuta nel main.xml e implementa ExpandableListActivity al posto di Activity, questo mi genera un errore sulla riga
Codice: [Seleziona]
expList = getExpandableListView(); in quanto non viene riconoscuto come metodo,
ora dopo questa piccola premessa vorrei solo visualizzare correttamente la mia Expandablelist senza intoppi.
Ho provato a buttare giu del codice ma non funziona(errore descritto in precdenza)
Codice: [Seleziona]
public class Myapp extends Activity implements OnClickListener {
static final String[][] exp_channels = {
    {"A", "B", "C","D"},
};

DisplayMetrics metrics;
 int width;
 ExpandableListView expList;

public boolean onCreateOptionsMenu(Menu menu)
 {

    getMenuInflater().inflate(R.menu.menu, menu);
    return true;
 }
public Dialog onCreateDialog(int id) {

     switch (id) {
     case 1: //Country Menu item

            metrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(metrics);
            width = metrics.widthPixels;
            expList = getExpandableListView();
            //this code for adjusting the group indicator into right side of the view
            //expList.setIndicatorBounds(width - GetDipsFromPixel(50), width - GetDipsFromPixel(10));
            expList.setAdapter(new ExpAdapter(this));

      expList.setOnGroupExpandListener(new OnGroupExpandListener()
      {
       //@Override
       public void onGroupExpand(int groupPosition)
       {
        //Log.e("onGroupExpand", "OK");
       }
      });

      expList.setOnGroupCollapseListener(new OnGroupCollapseListener()
      {
       //@Override
       public void onGroupCollapse(int groupPosition)
       {
        //Log.e("onGroupCollapse", "OK");
       }
      });

      expList.setOnChildClickListener(new OnChildClickListener()
      {
       //@Override
       public boolean onChildClick(ExpandableListView parent, View v,
         int groupPosition, int childPosition, long id) {
        //Log.e("OnChildClickListener", "OK");
        return false;
       }
      });
         break;
}

   AlertDialog MyAlert  = alert.create();
    return MyAlert;
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
     switch (item.getItemId()) {
     case R.id.country:
         onCreateDialog(1).show();
         break;
     }
     return false;
 }

public class ExpAdapter extends BaseExpandableListAdapter {

      private Context myContext;
      public ExpAdapter(Context context) {
       myContext = context;
      }
      //@Override
      public Object getChild(int groupPosition, int childPosition) {
       return null;
      }

      //@Override
      public long getChildId(int groupPosition, int childPosition) {
       return 0;
      }

      //@Override
      public View getChildView(int groupPosition, int childPosition,
        boolean isLastChild, View convertView, ViewGroup parent) {

       if (convertView == null) {
        LayoutInflater inflater =  (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.child_row, null);
       }

       TextView tvPlayerName = (TextView) convertView.findViewById(R.id.tvPlayerName);
       tvPlayerName.setText(exp_channels[groupPosition][childPosition]);

       return convertView;
      }

      //@Override
      public int getChildrenCount(int groupPosition) {
       return exp_channels[groupPosition].length;
      }

      //@Override
      public Object getGroup(int groupPosition) {
       return null;
      }

      //@Override
      public int getGroupCount() {
       return exp_channels.length;
      }

      //@Override
      public long getGroupId(int groupPosition) {
       return 0;
      }

      //@Override
      public View getGroupView(int groupPosition, boolean isExpanded,
        View convertView, ViewGroup parent) {

       if (convertView == null) {
        LayoutInflater inflater =  (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.group_row, null);
       }

       TextView tvGroupName = (TextView) convertView.findViewById(R.id.tvGroupName);
       tvGroupName.setText(lang_country[groupPosition]);

       return convertView;
      }

      //@Override
      public boolean hasStableIds() {
       return false;
      }

      //@Override
      public boolean isChildSelectable(int groupPosition, int childPosition) {
       return true;
      }
     }
La più grande tirannia che l uomo conosca è l inesorabile scorrere del tempo.

Le mie applicazioni