Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   package com.WazaBe.HoloEverywhere.preference;
   
   import java.io.IOException;
   import java.util.ArrayList;
   import java.util.List;
   
   
  import android.os.Bundle;
  import android.os.Parcel;
  import android.util.Xml;
  import android.view.View;
  
  
  public abstract class PreferenceActivity extends ListActivity implements
  	public static final class Header implements Parcelable {
  		public static final Creator<HeaderCREATOR = new Creator<Header>() {
  			public Header createFromParcel(Parcel source) {
  				return new Header(source);
  			}
  
  			public Header[] newArray(int size) {
  				return new Header[size];
  			}
  		};
  		public int breadCrumbShortTitleRes;
  		public int breadCrumbTitleRes;
  		public Bundle extras;
  		public String fragment;
  		public int iconRes;
  		public long id = ;
  		public Intent intent;
  		public CharSequence summary;
  		public int summaryRes;
  		public CharSequence title;
  
  		public int titleRes;
  
  		public Header() {
  		}
  
  		Header(Parcel in) {
  		}
  
  		public int describeContents() {
  			return 0;
  		}
  
  			if ( != 0) {
  			}
  		}
  
  			if ( != 0) {
  				return res.getText();
  			}
 			return ;
 		}
 
 		public CharSequence getSummary(Resources res) {
 			if ( != 0) {
 				return res.getText();
 			}
 			return ;
 		}
 
 		public CharSequence getTitle(Resources res) {
 			if ( != 0) {
 				return res.getText();
 			}
 			return ;
 		}
 
 		public void readFromParcel(Parcel in) {
 			 = in.readLong();
 			 = in.readInt();
 			 = in.readInt();
 			 = in.readInt();
 			 = in.readString();
 			if (in.readInt() != 0) {
 			}
 			 = in.readBundle();
 		}
 
 		public void writeToParcel(Parcel destint flags) {
 			dest.writeLong();
 			TextUtils.writeToParcel(destflags);
 			TextUtils.writeToParcel(destflags);
 			TextUtils.writeToParcel(destflags);
 			TextUtils.writeToParcel(destflags);
 			if ( != null) {
 				dest.writeInt(1);
 				.writeToParcel(destflags);
 			} else {
 				dest.writeInt(0);
 			}
 		}
 	}
 
 	private static class HeaderAdapter extends ArrayAdapter<Header> {
 		private static class HeaderViewHolder {
 		}
 
 
 		public HeaderAdapter(Context contextList<Headerobjects) {
 			super(context, 0, objects);
 			 = (LayoutInflatercontext
 		}
 
 		public View getView(int positionView convertViewViewGroup parent) {
 			View view;
 			if (convertView == null) {
 						parentfalse);
 				holder = new HeaderViewHolder();
 				holder.icon = (ImageViewview.findViewById(..);
 				holder.title = (TextViewview.findViewById(..);
 				holder.summary = (TextViewview.findViewById(..);
 				view.setTag(holder);
 			} else {
 				view = convertView;
 				holder = (HeaderViewHolderview.getTag();
 			}
 			Header header = getItem(position);
 			holder.icon.setImageResource(header.iconRes);
 			holder.title.setText(header.getTitle(getContext().getResources()));
 			CharSequence summary = header.getSummary(getContext()
 			if (!TextUtils.isEmpty(summary)) {
 				holder.summary.setVisibility(.);
 				holder.summary.setText(summary);
 			} else {
 				holder.summary.setVisibility(.);
 			}
 
 			return view;
 		}
 	}
 
 	private static final String BACK_STACK_PREFS = ":android:prefs";
 	private static final String CUR_HEADER_TAG = ":android:cur_header";
 	public static final String EXTRA_NO_HEADERS = ":android:no_headers";
 	private static final String EXTRA_PREFS_SET_BACK_TEXT = "extra_prefs_set_back_text";
 	private static final String EXTRA_PREFS_SET_NEXT_TEXT = "extra_prefs_set_next_text";
 	private static final String EXTRA_PREFS_SHOW_BUTTON_BAR = "extra_prefs_show_button_bar";
 	private static final String EXTRA_PREFS_SHOW_SKIP = "extra_prefs_show_skip";
 	public static final String EXTRA_SHOW_FRAGMENT = ":android:show_fragment";
 	public static final String EXTRA_SHOW_FRAGMENT_ARGUMENTS = ":android:show_fragment_args";
 	public static final String EXTRA_SHOW_FRAGMENT_SHORT_TITLE = ":android:show_fragment_short_title";
 	public static final String EXTRA_SHOW_FRAGMENT_TITLE = ":android:show_fragment_title";
 	private static final int FIRST_REQUEST_CODE = 100;
 	public static final long HEADER_ID_UNDEFINED = -1;
 	private static final String HEADERS_TAG = ":android:headers";
 	private static final int MSG_BIND_PREFERENCES = 1;
 	private static final int MSG_BUILD_HEADERS = 2;
 	private static final String PREFERENCES_TAG = ":android:preferences";
 	private Header mCurHeader;
 	private Handler mHandler = new Handler() {
 		public void handleMessage(Message msg) {
 			switch (msg.what) {
 			}
 				break;
 				ArrayList<HeaderoldHeaders = new ArrayList<Header>();
 				if (getListAdapter() instanceof BaseAdapter) {
 				}
 				Header header = onGetNewHeader();
 				if (header != null && header.fragment != null) {
 					Header mappedHeader = findBestMatchingHeader(header,
 							oldHeaders);
 					if (mappedHeader == null ||  != mappedHeader) {
 						switchToHeader(header);
 					}
 				} else if ( != null) {
 					if (mappedHeader != null) {
 						setSelectedHeader(mappedHeader);
 					}
 				}
 			}
 				break;
 			}
 		}
 	};
 	private final ArrayList<HeadermHeaders = new ArrayList<Header>();
 	private Button mNextButton;
 
 
 
 	private boolean mSinglePane;
 
 	public void addPreferencesFromIntent(Intent intent) {
 
 	}
 
 	public void addPreferencesFromResource(int preferencesResId) {
 
 				preferencesResIdgetPreferenceScreen()));
 	}
 
 	private void bindPreferences() {
 		final PreferenceScreen preferenceScreen = getPreferenceScreen();
 		if (preferenceScreen != null) {
 			preferenceScreen.bind(getListView());
 			if ( != null) {
 			}
 		}
 	}
 
 		ArrayList<Headermatches = new ArrayList<Header>();
 		for (int j = 0; j < from.size(); j++) {
 			Header oh = from.get(j);
 			if (cur == oh || cur.id !=  && cur.id == oh.id) {
 				matches.clear();
 				matches.add(oh);
 				break;
 			}
 			if (cur.fragment != null) {
 				if (cur.fragment.equals(oh.fragment)) {
 					matches.add(oh);
 				}
 			} else if (cur.intent != null) {
 				if (cur.intent.equals(oh.intent)) {
 					matches.add(oh);
 				}
 			} else if (cur.title != null) {
 				if (cur.title.equals(oh.title)) {
 					matches.add(oh);
 				}
 			}
 		}
 		final int NM = matches.size();
 		if (NM == 1) {
 			return matches.get(0);
 		} else if (NM > 1) {
 			for (int j = 0; j < NMj++) {
 				Header oh = matches.get(j);
 				if (cur.fragmentArguments != null
 						&& cur.fragmentArguments.equals(oh.fragmentArguments)) {
 					return oh;
 				}
 				if (cur.extras != null && cur.extras.equals(oh.extras)) {
 					return oh;
 				}
 				if (cur.title != null && cur.title.equals(oh.title)) {
 					return oh;
 				}
 			}
 		}
 		return null;
 	}
 
 		if ( == null) {
 			return null;
 		}
 	}
 
 	public void finishPreferencePanel(Fragment callerint resultCode,
 			Intent resultData) {
 		if () {
 			setResult(resultCoderesultData);
 			finish();
 		} else {
 			if (caller != null) {
 				if (caller.getTargetFragment() != null) {
 							caller.getTargetRequestCode(), resultCode,
 							resultData);
 				}
 			}
 		}
 	}
 
 	public List<HeadergetHeaders() {
 		return ;
 	}
 
 	protected Button getNextButton() {
 		return ;
 	}
 
 	}
 
 		if ( != null) {
 		}
 		return null;
 	}
 
 	public boolean hasHeaders() {
 				&&  == null;
 	}
 
 	protected boolean hasNextButton() {
 		return  != null;
 	}
 
 	public void invalidateHeaders() {
 		}
 	}
 
 	public boolean isMultiPane() {
 	}
 
 	public void loadHeadersFromResource(int residList<Headertarget) {
 		XmlResourceParser parser = null;
 		try {
 			parser = getResources().getXml(resid);
 			AttributeSet attrs = Xml.asAttributeSet(parser);
 
 			int type;
 			while ((type = parser.next()) != .
 					&& type != .) {
 				// Parse next until start tag is found
 			}
 
 			String nodeName = parser.getName();
 			if (!"preference-headers".equals(nodeName)) {
 				throw new RuntimeException(
 						"XML document must start with <preference-headers> tag; found"
 								+ nodeName + " at "
 								+ parser.getPositionDescription());
 			}
 
 			Bundle curBundle = null;
 
 			final int outerDepth = parser.getDepth();
 			while ((type = parser.next()) != .
 					&& (type != . || parser.getDepth() > outerDepth)) {
 				if (type == . || type == .) {
 					continue;
 				}
 
 				nodeName = parser.getName();
 				if ("header".equals(nodeName)) {
 					Header header = new Header();
 
 					header.id = sa.getResourceId(
 					TypedValue tv = sa
 					if (tv != null && tv.type == .) {
 						if (tv.resourceId != 0) {
 							header.titleRes = tv.resourceId;
 						} else {
 							header.title = tv.string;
 						}
 					}
 					if (tv != null && tv.type == .) {
 						if (tv.resourceId != 0) {
 							header.summaryRes = tv.resourceId;
 						} else {
 							header.summary = tv.string;
 						}
 					}
 					if (tv != null && tv.type == .) {
 						if (tv.resourceId != 0) {
 							header.breadCrumbTitleRes = tv.resourceId;
 						} else {
 							header.breadCrumbTitle = tv.string;
 						}
 					}
 					if (tv != null && tv.type == .) {
 						if (tv.resourceId != 0) {
 							header.breadCrumbShortTitleRes = tv.resourceId;
 						} else {
 							header.breadCrumbShortTitle = tv.string;
 						}
 					}
 					header.iconRes = sa.getResourceId(
 					header.fragment = sa
 					sa.recycle();
 
 					if (curBundle == null) {
 						curBundle = new Bundle();
 					}
 
 					final int innerDepth = parser.getDepth();
 					while ((type = parser.next()) != .
 							&& (type != . || parser
 									.getDepth() > innerDepth)) {
 						if (type == .
 								|| type == .) {
 							continue;
 						}
 
 						String innerNodeName = parser.getName();
 						if (innerNodeName.equals("extra")) {
 							getResources().parseBundleExtra("extra"attrs,
 									curBundle);
 							XmlUtils.skipCurrentTag(parser);
 
 						} else if (innerNodeName.equals("intent")) {
 							header.intent = Intent.parseIntent(getResources(),
 									parserattrs);
 
 						} else {
 							XmlUtils.skipCurrentTag(parser);
 						}
 					}
 
 					if (curBundle.size() > 0) {
 						header.fragmentArguments = curBundle;
 						curBundle = null;
 					}
 
 					target.add(header);
 				} else {
 					XmlUtils.skipCurrentTag(parser);
 				}
 			}
 
 		} catch (XmlPullParserException e) {
 			throw new RuntimeException("Error parsing headers"e);
 		} catch (IOException e) {
 			throw new RuntimeException("Error parsing headers"e);
 		} finally {
 			if (parser != null) {
 				parser.close();
 			}
 		}
 
 	}
 
 	protected void onActivityResult(int requestCodeint resultCodeIntent data) {
 		super.onActivityResult(requestCoderesultCodedata);
 
 		if ( != null) {
 			.dispatchActivityResult(requestCoderesultCode,
 					data);
 		}
 	}
 
 	public void onBuildHeaders(List<Headertarget) {
 	}
 
 	public Intent onBuildStartFragmentIntent(String fragmentNameBundle args,
 			int titleResint shortTitleRes) {
 		Intent intent = new Intent(.);
 		intent.setClass(thisgetClass());
 		intent.putExtra(fragmentName);
 		intent.putExtra(titleRes);
 		intent.putExtra(shortTitleRes);
 		intent.putExtra(true);
 		return intent;
 	}
 
 	public void onContentChanged() {
 
 		if ( != null) {
 		}
 	}
 
 	protected void onCreate(Bundle savedInstanceState) {
 		super.onCreate(savedInstanceState);
 		boolean hidingHeaders = onIsHidingHeaders();
 		 = hidingHeaders || !onIsMultiPane();
 		String initialFragment = getIntent()
 		Bundle initialArguments = getIntent().getBundleExtra(
 		int initialTitle = getIntent()
 		int initialShortTitle = getIntent().getIntExtra(
 		if (savedInstanceState != null) {
 			ArrayList<Headerheaders = savedInstanceState
 			if (headers != null) {
 				.addAll(headers);
 				int curHeader = savedInstanceState.getInt(,
 				if (curHeader >= 0 && curHeader < .size()) {
 				}
 			}
 		} else {
 			if (initialFragment != null && ) {
 				switchToHeader(initialFragmentinitialArguments);
 				if (initialTitle != 0) {
 					CharSequence initialTitleStr = getText(initialTitle);
 					CharSequence initialShortTitleStr = initialShortTitle != 0 ? getText(initialShortTitle)
 							: null;
 					showBreadCrumbs(initialTitleStrinitialShortTitleStr);
 				}
 			} else {
 				if (.size() > 0) {
 					if (!) {
 						if (initialFragment == null) {
 						} else {
 							switchToHeader(initialFragmentinitialArguments);
 						}
 					}
 				}
 			}
 		}
 		if (initialFragment != null && ) {
 			if (initialTitle != 0) {
 				CharSequence initialTitleStr = getText(initialTitle);
 				CharSequence initialShortTitleStr = initialShortTitle != 0 ? getText(initialShortTitle)
 						: null;
 				showBreadCrumbs(initialTitleStrinitialShortTitleStr);
 			}
 		} else if (.size() > 0) {
 			if (!) {
 				if ( != null) {
 				}
 			}
 		} else {
 		}
 
 		Intent intent = getIntent();
 
 
 			Button backButton = (ButtonfindViewById(..);
 			backButton.setOnClickListener(new OnClickListener() {
 				public void onClick(View v) {
 					finish();
 				}
 			});
 			Button skipButton = (ButtonfindViewById(..);
 			skipButton.setOnClickListener(new OnClickListener() {
 				public void onClick(View v) {
 					finish();
 				}
 			});
 				public void onClick(View v) {
 					finish();
 				}
 			});
 
 				String buttonText = intent
 				if (TextUtils.isEmpty(buttonText)) {
 				} else {
 					.setText(buttonText);
 				}
 			}
 				String buttonText = intent
 				if (TextUtils.isEmpty(buttonText)) {
 					backButton.setVisibility(.);
 				} else {
 					backButton.setText(buttonText);
 				}
 			}
 			if (intent.getBooleanExtra(false)) {
 				skipButton.setVisibility(.);
 			}
 		}
 	}
 
 	protected void onDestroy() {
 		super.onDestroy();
 
 		if ( != null) {
 		}
 	}
 
 	public Header onGetInitialHeader() {
 		return .get(0);
 	}
 
 	public Header onGetNewHeader() {
 		return null;
 	}
 
 	public void onHeaderClick(Header headerint position) {
 		if (header.fragment != null) {
 			if () {
 				int titleRes = header.breadCrumbTitleRes;
 				int shortTitleRes = header.breadCrumbShortTitleRes;
 				if (titleRes == 0) {
 					titleRes = header.titleRes;
 					shortTitleRes = 0;
 				}
 				startWithFragment(header.fragmentheader.fragmentArguments,
 						null, 0, titleResshortTitleRes);
 			} else {
 				switchToHeader(header);
 			}
 		} else if (header.intent != null) {
 			startActivity(header.intent);
 		}
 	}
 
 	public boolean onIsHidingHeaders() {
 	}
 
 	public boolean onIsMultiPane() {
 		boolean preferMultiPane = getResources().getBoolean(
 		return preferMultiPane;
 	}
 
 	protected void onListItemClick(ListView lView vint positionlong id) {
 		super.onListItemClick(lvpositionid);
 		if (getListAdapter() != null) {
 			Object item = getListAdapter().getItem(position);
 			if (item instanceof Header) {
 				onHeaderClick((Headeritemposition);
 			}
 		}
 	}
 
 	protected void onNewIntent(Intent intent) {
 		if ( != null) {
 		}
 	}
 
 			Preference pref) {
 				pref.getTitleRes(), pref.getTitle(), null, 0);
 		return true;
 	}
 
 	public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
 			Preference preference) {
 		return false;
 	}
 
 	protected void onRestoreInstanceState(Bundle state) {
 		if ( != null) {
 			Bundle container = state.getBundle();
 			if (container != null) {
 				final PreferenceScreen preferenceScreen = getPreferenceScreen();
 				if (preferenceScreen != null) {
 					preferenceScreen.restoreHierarchyState(container);
 					return;
 				}
 			}
 		}
 		super.onRestoreInstanceState(state);
 	}
 
 	protected void onSaveInstanceState(Bundle outState) {
 		super.onSaveInstanceState(outState);
 
 		if (.size() > 0) {
 			if ( != null) {
 				int index = .indexOf();
 				if (index >= 0) {
 					outState.putInt(index);
 				}
 			}
 		}
 
 		if ( != null) {
 			final PreferenceScreen preferenceScreen = getPreferenceScreen();
 			if (preferenceScreen != null) {
 				Bundle container = new Bundle();
 				preferenceScreen.saveHierarchyState(container);
 				outState.putBundle(container);
 			}
 		}
 	}
 
 	protected void onStop() {
 		super.onStop();
 
 		if ( != null) {
 		}
 	}
 
 	private void postBindPreferences() {
 			return;
 		}
 	}
 
 	private void requirePreferenceManager() {
 		if ( == null) {
 			if ( == null) {
 				throw new RuntimeException(
 						"This should be called after super.onCreate.");
 			}
 			throw new RuntimeException(
 					"Modern two-pane PreferenceActivity requires use of a PreferenceFragment");
 		}
 	}

Set a footer that should be shown at the bottom of the header list.
 
 	public void setListFooter(View view) {
 	}
 
 	public void setParentTitle(CharSequence titleCharSequence shortTitle,
 			OnClickListener listener) {
 		if ( != null) {
 			.setParentTitle(titleshortTitlelistener);
 		}
 	}
 
 	public void setPreferenceScreen(PreferenceScreen preferenceScreen) {
 
 		if (.setPreferences(preferenceScreen)
 				&& preferenceScreen != null) {
 			if (title != null) {
 				setTitle(title);
 			}
 		}
 	}
 
 	void setSelectedHeader(Header header) {
 		 = header;
 		int index = .indexOf(header);
 		if (index >= 0) {
 			getListView().setItemChecked(indextrue);
 		} else {
 		}
 		showBreadCrumbs(header);
 	}
 
 	public void showBreadCrumbs(CharSequence titleCharSequence shortTitle) {
 		if ( == null) {
 			View crumbs = findViewById(..);
 			try {
 			} catch (ClassCastException e) {
 				return;
 			}
 			if ( == null) {
 				if (title != null) {
 					setTitle(title);
 				}
 				return;
 			}
 		}
 		.setTitle(titleshortTitle);
 		.setParentTitle(nullnullnull);
 	}
 
 	void showBreadCrumbs(Header header) {
 		if (header != null) {
 			if (title == null) {
 				title = header.getTitle(getResources());
 			}
 			if (title == null) {
 				title = getTitle();
 			}
 		} else {
 		}
 	}
 
 	public void startPreferenceFragment(Fragment fragmentboolean push) {
 		transaction.replace(..fragment);
 		if (push) {
 			transaction
 		} else {
 			transaction
 		}
 		transaction.commitAllowingStateLoss();
 	}
 
 	public void startPreferencePanel(String fragmentClassBundle args,
 			int titleResCharSequence titleTextFragment resultTo,
 			int resultRequestCode) {
 		if () {
 			startWithFragment(fragmentClassargsresultToresultRequestCode,
 					titleRes, 0);
 		} else {
 			Fragment f = Fragment.instantiate(thisfragmentClassargs);
 			if (resultTo != null) {
 				f.setTargetFragment(resultToresultRequestCode);
 			}
 			transaction.replace(..f);
 			if (titleRes != 0) {
 				transaction.setBreadCrumbTitle(titleRes);
 			} else if (titleText != null) {
 				transaction.setBreadCrumbTitle(titleText);
 			}
 			transaction
 			transaction.commitAllowingStateLoss();
 		}
 	}
 
 	public void startWithFragment(String fragmentNameBundle args,
 			Fragment resultToint resultRequestCode) {
 		startWithFragment(fragmentNameargsresultToresultRequestCode, 0, 0);
 	}
 
 	public void startWithFragment(String fragmentNameBundle args,
 			Fragment resultToint resultRequestCodeint titleRes,
 			int shortTitleRes) {
 		Intent intent = onBuildStartFragmentIntent(fragmentNameargs,
 				titleResshortTitleRes);
 		if (resultTo == null) {
 			startActivity(intent);
 		} else {
 			resultTo.startActivityForResult(intentresultRequestCode);
 		}
 	}
 
 	public void switchToHeader(Header header) {
 		if ( == header) {
 		} else {
 			int direction = .indexOf(header)
 			switchToHeaderInner(header.fragmentheader.fragmentArguments,
 					direction);
 		}
 	}
 
 	public void switchToHeader(String fragmentNameBundle args) {
 		switchToHeaderInner(fragmentNameargs, 0);
 	}
	private void switchToHeaderInner(String fragmentNameBundle args,
			int direction) {
		Fragment f = Fragment.instantiate(thisfragmentNameargs);
		transaction.replace(..f);