Android Open Source - DEVIEW2014_AndroidApp_Demo Bundle Mapper From Project Back to project page DEVIEW2014_AndroidApp_Demo .
License The source code is released under:
Apache License
If you think the Android project DEVIEW2014_AndroidApp_Demo listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.nhn.android.deview.core.transfer;
/ / w w w . j a v a 2 s . c o m
import java.lang.reflect.Field;
import java.util.Set;
import android.content.Intent;
import android.os.Bundle;
public class BundleMapper {
boolean toBundle(Object container,Bundle bundle,boolean isAll) {
Field[] fields = container.getClass().getFields();
String name;
for (Field f:fields) {
BundleField ref = f.getAnnotation(BundleField.class);
String sname = f.getType().getSimpleName();
if (ref != null) {
name = ref.name();
} else {
name = f.getName();
}
try {
if (sname.equals("String" ) == true) {
bundle.putString(name, (String) f.get(container));
} else if (sname.equals("int" ) == true) {
bundle.putInt(name, f.getInt(container));
} else if (sname.equals("long" ) == true) {
bundle.putLong(name, f.getLong(container));
} else if (sname.equals("float" ) == true) {
bundle.putFloat(name, f.getFloat(container));
} else if (sname.equals("double" ) == true) {
bundle.putDouble(name, f.getDouble(container));
}
} catch (Exception e) {
}
}
return false;
}
public static boolean fromBundle(Object container,Bundle bundle) {
if (bundle == null) {
return false;
}
Set<String> keys = bundle.keySet();
Class<?> cls = container.getClass();
for (String key:keys) {
try {
Field field = cls.getField(key);
field.setAccessible(true);
BundleField ref = field.getAnnotation(BundleField.class);
if (ref != null) {
if (cls.isPrimitive() == true) {
String sname = field.getType().getSimpleName();
if (sname.equals("int" ) == true) {
field.setInt(container, bundle.getInt(key));
} else if (sname.equals("float" ) == true) {
field.setFloat(container, bundle.getFloat(key));
} else {
return false;
}
return true;
} else {
Object value = bundle.get(key);
field.set(container, value);
}
}
} catch (NoSuchFieldException e) {
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
public static boolean fromIntent(Object container,Intent intent) {
//Uri uri = getData();
if (intent == null) {
return false;
}
return fromBundle(container,intent.getExtras());
}
}
Java Source Code List com.nhn.android.deview.AppContext.java com.nhn.android.deview.AppTable.java com.nhn.android.deview.DeViewApplication.java com.nhn.android.deview.DeviewSchemeActivity.java com.nhn.android.deview.MainDB.java com.nhn.android.deview.ThreadWorker.java com.nhn.android.deview.core.connector.DataConnectorListener.java com.nhn.android.deview.core.connector.DataDoc.java com.nhn.android.deview.core.connector.DataField.java com.nhn.android.deview.core.connector.DataSet.java com.nhn.android.deview.core.connector.DefaultDataConnector.java com.nhn.android.deview.core.db.CursorReader.java com.nhn.android.deview.core.db.DbTable.java com.nhn.android.deview.core.lifecycle.CycleBaseLayout.java com.nhn.android.deview.core.lifecycle.CycleControllable.java com.nhn.android.deview.core.lifecycle.CycleControllerActivity.java com.nhn.android.deview.core.lifecycle.CycleController.java com.nhn.android.deview.core.lifecycle.CycleFragment.java com.nhn.android.deview.core.listview.ListCellViewAdapter.java com.nhn.android.deview.core.listview.ListCellView.java com.nhn.android.deview.core.listview.PageViewPagerAdapter.java com.nhn.android.deview.core.listview.PageView.java com.nhn.android.deview.core.pager.SimplePagerAdapter.java com.nhn.android.deview.core.transfer.BundleField.java com.nhn.android.deview.core.transfer.BundleMapper.java com.nhn.android.deview.core.transfer.IntentUri.java com.nhn.android.deview.core.transfer.UriObject.java com.nhn.android.deview.core.view.DeclareView.java com.nhn.android.deview.core.view.ViewMapper.java com.nhn.android.deview.dao.DeviewUri.java com.nhn.android.deview.dao.MyMemoManager.java com.nhn.android.deview.dao.MyMemo.java com.nhn.android.deview.dao.MySchedule.java com.nhn.android.deview.dao.program.ProgramData.java com.nhn.android.deview.dao.program.ProgramListConnector.java com.nhn.android.deview.dao.program.ProgramListDoc.java com.nhn.android.deview.dao.program.ProgramManager.java com.nhn.android.deview.dao.program.ProgramTrack.java com.nhn.android.deview.dao.program.TrackListConnector.java com.nhn.android.deview.ui.main.MainActivity.java com.nhn.android.deview.ui.main.ProgramCellView.java com.nhn.android.deview.ui.main.ProgramPageView.java com.nhn.android.deview.ui.note.MemoCellView.java com.nhn.android.deview.ui.note.MemoListActivity.java com.nhn.android.deview.ui.note.MemoRecorder.java com.nhn.android.deview.ui.note.MyScheduleActivity.java com.nhn.android.deview.webviewer.MemoWebToolbar.java com.nhn.android.deview.webviewer.ProgramWebActivity.java com.nhn.android.deview.webviewer.WebPageView.java