Code example for ExpandableListView

Methods: setAdaptersetOnChildClickListenersetOnGroupClickListenersetOnItemClickListenersetSelection, setEmptyView

0
	 */ 
	public void setListAdapter(ExpandableListAdapter adapter) {
		boolean hadAdapter = mAdapter != null;
		mAdapter = adapter;
		if (mList != null) {
			mList.setAdapter(adapter);
			if (!mListShown && !hadAdapter) {
				// The list was hidden, and previously didn't have an 
				// adapter. It is now time to show it. 
				setListShown(true, getView().getWindowToken() != null);
			} 
		} 
	} 
 
	/** 
	 * Set the currently selected list item to the specified position with the 
	 * adapter's data 
	 *  
	 * @param position 
	 */ 
	public void setSelection(int position) {
		ensureList(); 
		mList.setSelection(position);
	} 
 
	/** 
	 * Get the position of the currently selected list item. 
	 */ 
	public int getSelectedItemPosition() { 
		ensureList(); 
		return mList.getSelectedItemPosition();
	} 
 
	/** 
	 * Get the cursor row ID of the currently selected list item. 
	 */ 
	public long getSelectedItemId() { 
		ensureList(); 
		return mList.getSelectedItemId();
	} 
 
	/** 
	 * Get the activity's list view widget. 
	 */ 
	public ExpandableListView getListView() {
		ensureList(); 
		return mList;
	} 
 
	/** 
	 * The default content for a ListFragment has a TextView that can be shown 
	 * when the list is empty. If you would like to have it shown, call this 
	 * method to supply the text it should use. 
	 */ 
	public void setEmptyText(CharSequence text) {
		ensureList(); 
		if (mStandardEmptyView == null) { throw new IllegalStateException("Can't be used with a custom content view"); }
		mStandardEmptyView.setText(text);
		if (mEmptyText == null) {
			mList.setEmptyView(mStandardEmptyView);
		} 
		mEmptyText = text;
	} 
 
	/** 
	 * Control whether the list is being displayed. You can make it not 
	 * displayed if you are waiting for the initial data to show in it. During 
	 * this time an indeterminant progress indicator will be shown instead. 
	 *  
	 * <p> 
	 * Applications do not normally need to use this themselves. The default 
	 * behavior of ListFragment is to start with the list not being shown, only 
	 * showing it once an adapter is given with 
	 * {@link #setListAdapter(ListAdapter)}. If the list at that point had not 
	 * been shown, when it does get shown it will be do without the user ever 
	 * seeing the hidden state. 
	 *  
	 * @param shown 
	 *            If true, the list view is shown; if false, the progress 
	 *            indicator. The initial value is true. 
	 */ 
	public void setListShown(boolean shown) {
		setListShown(shown, true);
	} 
 
	/** 
	 * Like {@link #setListShown(boolean)}, but no animation is used when 
	 * transitioning from the previous state. 
	 */ 
	public void setListShownNoAnimation(boolean shown) {
		setListShown(shown, false);
	} 
 
	/** 
	 * Control whether the list is being displayed. You can make it not 
	 * displayed if you are waiting for the initial data to show in it. During 
	 * this time an indeterminant progress indicator will be shown instead. 
	 *  
	 * @param shown 
	 *            If true, the list view is shown; if false, the progress 
	 *            indicator. The initial value is true. 
	 * @param animate 
	 *            If true, an animation will be used to transition to the new 
	 *            state. 
	 */ 
	private void setListShown(boolean shown, boolean animate) {
		ensureList(); 
		if (mProgressContainer == null) { throw new IllegalStateException("Can't be used with a custom content view"); }
		if (mListShown == shown) { return; }
		mListShown = shown;
		if (shown) {
			if (animate) {
				mProgressContainer.startAnimation(AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_out));
				mListContainer.startAnimation(AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in));
			} else { 
				mProgressContainer.clearAnimation();
				mListContainer.clearAnimation();
			} 
			mProgressContainer.setVisibility(View.GONE);
			mListContainer.setVisibility(View.VISIBLE);
		} else { 
			if (animate) {
				mProgressContainer.startAnimation(AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in));
				mListContainer.startAnimation(AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_out));
			} else { 
				mProgressContainer.clearAnimation();
				mListContainer.clearAnimation();
			} 
			mProgressContainer.setVisibility(View.VISIBLE);
			mListContainer.setVisibility(View.GONE);
		} 
	} 
 
	public ExpandableListAdapter getListAdapter() {
		return mAdapter;
	} 
 
	private void ensureList() { 
		if (mList != null) { return; }
		View root = getView();
		if (root == null) { throw new IllegalStateException("Content view not yet created"); }
		if (root instanceof ExpandableListView) {
			mList = (ExpandableListView) root;
		} else { 
			mStandardEmptyView = (TextView) root.findViewById(INTERNAL_EMPTY_ID);
			if (mStandardEmptyView == null) {
				mEmptyView = root.findViewById(android.R.id.empty);
			} else { 
				mStandardEmptyView.setVisibility(View.GONE);
			} 
			mProgressContainer = root.findViewById(INTERNAL_PROGRESS_CONTAINER_ID);
			mListContainer = root.findViewById(INTERNAL_LIST_CONTAINER_ID);
			View rawListView = root.findViewById(android.R.id.list);
			if (!(rawListView instanceof ExpandableListView)) {
				if (rawListView == null) { throw new RuntimeException(
						"Your content must have a ListView whose id attribute is " + "'android.R.id.list'"); } 
				throw new RuntimeException("Content has view with id attribute 'android.R.id.list' "
						+ "that is not a ListView class"); 
			} 
			mList = (ExpandableListView) rawListView;
			if (mEmptyView != null) {
				mList.setEmptyView(mEmptyView);
			} else if (mEmptyText != null) {
				mStandardEmptyView.setText(mEmptyText);
				mList.setEmptyView(mStandardEmptyView);
			} 
		} 
		mListShown = true;
		mList.setOnItemClickListener(mOnClickListener);
		mList.setOnChildClickListener(mOnChildClickListener);
		mList.setOnGroupClickListener(mOnGroupClickListener);
		if (mAdapter != null) {
			ExpandableListAdapter adapter = mAdapter;
			mAdapter = null;
			setListAdapter(adapter);
		} else { 
Stop searching for code, let great code find you!  Add Codota to your java IDE