android中ExpandableListView點擊哪一條那一條顯示,而其他條隱藏的實現辦法

來源:互聯網
上載者:User


 直接上代碼 [java]  public class MyActivity extends Activity implements HandleClick{             private ExpandableListView listView;            private int lastClick = -1;//上一次點擊的group的position            public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);                    listView = (ExpandableListView)findViewById(R.id.listView);          //去掉前面的箭頭表徵圖          listView.setGroupIndicator(null);                    MyExpandAdapter adapter = new MyExpandAdapter(this);          adapter.setHnadleClick(this);         listView.setAdapter(adapter);                             listView.setOnGroupClickListener(new OnGroupClickListener() {              public boolean onGroupClick(ExpandableListView parent, View v,                      int groupPosition, long id) {                                    if(lastClick == -1)                  {                      listView.expandGroup(groupPosition);                  }                                    if(lastClick != -1 && lastClick != groupPosition)                  {                      listView.collapseGroup(lastClick);                      listView.expandGroup(groupPosition);                  }                  else if(lastClick == groupPosition)                   {                      if(listView.isGroupExpanded(groupPosition))                          listView.collapseGroup(groupPosition);                      else if(!listView.isGroupExpanded(groupPosition))                          listView.expandGroup(groupPosition);                  }                                    lastClick = groupPosition;                  return true;              }          });      }              public void handleClick(int type) {                    Toast.makeText(MyActivity.this, "...點了一下...", Toast.LENGTH_SHORT).show();      }  }   適配器:[java]  public class MyExpandAdapter extends BaseExpandableListAdapter{        private Context context;      private String[] roomName  = new String[]{"房間1","房間2","房間3","房間4","房間5"};      private String[] peoNum = new String[]{"1323人","6654人","86554人","6565人","7967人"};      private String[] startTime = new String[]{"馬上開始","1分鐘","2分鐘","3分鐘","4分鐘"};            private HandleClick handleClick;            public interface HandleClick      {          public void handleClick(int type);      }            public void setHnadleClick(HandleClick hc)      {          this.handleClick = hc;      }            public MyExpandAdapter(Context context)      {          this.context = context;      }            public boolean isChildSelectable(int groupPosition, int childPosition) {          // TODO Auto-generated method stub          return false;      }            @Override      public boolean hasStableIds() {          // TODO Auto-generated method stub          return false;      }            @Override      public View getGroupView(int groupPosition, boolean isExpanded,              View convertView, ViewGroup parent) {                    convertView = (RelativeLayout)RelativeLayout.inflate(context, R.layout.group, null);          TextView tv_roomName = (TextView)convertView.findViewById(R.id.tv_roomName);          TextView tv_time = (TextView)convertView.findViewById(R.id.tv_time);          TextView tv_peoNum = (TextView)convertView.findViewById(R.id.tv_peoNum);                    tv_roomName.setText(roomName[groupPosition]);          tv_time.setText(peoNum[groupPosition]);          tv_peoNum.setText(startTime[groupPosition]);                    return convertView;      }            @Override      public long getGroupId(int groupPosition) {          // TODO Auto-generated method stub          return 0;      }            @Override      public int getGroupCount() {          // TODO Auto-generated method stub          return roomName.length;      }            @Override      public Object getGroup(int groupPosition) {          // TODO Auto-generated method stub          return null;      }            @Override      public int getChildrenCount(int groupPosition) {          // TODO Auto-generated method stub          return 1;      }            @Override      public View getChildView(int groupPosition, int childPosition,              boolean isLastChild, View convertView, ViewGroup parent) {                    convertView = (LinearLayout)LinearLayout.inflate(context, R.layout.child, null);                    TextView child_startTime = (TextView)convertView.findViewById(R.id.child_startTime);          TextView child_peoNum = (TextView)convertView.findViewById(R.id.child_peoNum);          Button child_button = (Button)convertView.findViewById(R.id.child_button);                    child_startTime.setText(startTime[groupPosition]);          child_peoNum.setText(peoNum[groupPosition]);          child_button.setOnClickListener(new OnClickListener() {              public void onClick(View v) {                                    handleClick.handleClick(1);              }          });                    return convertView;      }            public long getChildId(int groupPosition, int childPosition) {          // TODO Auto-generated method stub          return 0;      }            @Override      public Object getChild(int groupPosition, int childPosition) {          // TODO Auto-generated method stub          return null;      }    }   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.