8. import com.actionbarsherlock.app.SherlockFragmentActivity; //import android.app.Activity;
public class MainActivity extends SherlockFragmentActivity implements OnItemClickListener{
List<Integer> images = new ArrayList<Integer>();
List<String> items = new ArrayList<String>();
private ListView mDrawerList;
private DrawerLayout mDrawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
images.add(android.R.drawable.ic_menu_gallery);
images.add(android.R.drawable.ic_menu_camera);
items.add("Earth");
items.add("Jupiter");
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); // Set Shadow
mDrawerList = (ListView) findViewById(R.id.left_drawer);
ListAdapter adapter = new CustomArrayAdapter(this, items, images);
// Set the adapter for the list view
mDrawerList.setAdapter(adapter);
mDrawerList.setOnItemClickListener(this);
if (savedInstanceState == null) {
selectItem(0);
}
}
}
by Eakapong Kattiya
Navigation Drawer : MainActivity.java
Monday, July 15, 13
9. import com.actionbarsherlock.view.Menu; //import android.view.Menu;
public class MainActivity extends SherlockFragmentActivity
implements OnItemClickListener{
//..
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//getMenuInflater().inflate(R.menu.main, menu);
getSupportMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
by Eakapong Kattiya
Navigation Drawer : MainActivity.java
Monday, July 15, 13
10. import com.actionbarsherlock.view.Menu; //import android.view.Menu;
public class MainActivity extends SherlockFragmentActivity
implements OnItemClickListener{
//..
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
selectItem(arg2);
}
private void selectItem(int arg0) {
// update the main content by replacing fragments
PlanetFragment fragment = new PlanetFragment();
fragment.setPlanet(items.get(arg0));
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerLayout.closeDrawer(mDrawerList);
}
}
by Eakapong Kattiya
Navigation Drawer : MainActivity.java
Monday, July 15, 13
11. import com.actionbarsherlock.view.Menu; //import android.view.Menu;
public class MainActivity extends SherlockFragmentActivity
implements OnItemClickListener{
//..
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
// Handle action buttons
switch (item.getItemId()) {
case R.id.action_websearch:
// create intent to perform web search for this planet
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, getSupportActionBar().getTitle());
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
by Eakapong Kattiya
Navigation Drawer : MainActivity.java
Monday, July 15, 13
12. public class CustomArrayAdapter extends ArrayAdapter<String> {
private List<Integer> images;
private List<String> items;
private Context context;
public CustomArrayAdapter(Context context, List<String> items, List<Integer> images) {
super(context, R.layout.drawer_list_item, items);
this.context = context;
this.images = images;
this.items = items ;
}
@Override
public View getView(int arg0, View convertView, ViewGroup parent) {
/* create a new view of my layout and inflate it in the row */
LayoutInflater inflator = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflator.inflate(R.layout.drawer_list_item, null);
TextView textView = (TextView) view.findViewById(R.id.cityName);
textView.setText(items.get(arg0));
ImageView imageCity = (ImageView) view.findViewById(R.id.imageCity);
String packageName = context.getPackageName();
String imageName = items.get(position).toLowerCase();
int resId = context.getResources().getIdentifier(imageName,"drawable", packageName);
imageCity.setImageResource(resId);
return view;
}
}
by Eakapong Kattiya
Navigation Drawer : CustomArrayAdapter.java
Monday, July 15, 13
14. by Eakapong Kattiya
List vs ArrayList vs LinkedList
List is interface , not a concrete class.
List cannot be instantiated.
List<String> items = new List<String>() ;
ArrayList is an implementation of List.
List<String> items = new ArrayList<String>();
items.add("Earth");
items.add("Jupiter");
LinkedList is an implementation of List.
List<String> items = new LinkedList<String>();
items.add("Earth");
items.add("Jupiter");
Monday, July 15, 13
15. by Eakapong Kattiya
ArrayList vs LinkedList
- ส่วนใหญ่แล้วใช้ ArrayList
- ใช้ LinkedList เมื่อข้อมูลใหญ่มากเช่น เกิน 1 ล้านแถวจะทํางานเร็วกว่า
(Big-Oh น้อยกว่าเมื่อมีการเพิ่มข้อมูล)
http://leepoint.net/notes-java/algorithms/big-oh/bigoh.html
Algorithm
array
ArrayList
LinkedList
access front O(1) O(1)
access back O(1) O(1)
access middle O(1) O(N)
insert at front O(N) O(1)
insert at back O(1) O(1)
insert in middle O(N) O(1)
Monday, July 15, 13
16. by Eakapong Kattiya
Sort ArrayList
List<String> items = new ArrayList<String>();
items.add("Earth");
items.add("Jupiter");
Collections.sort(items); //Ascending Sort
Comparator<String> comparator = Collections.reverseOrder();
Collections.sort(items,comparator); //Descending Sort
Monday, July 15, 13
17. -Fragment is a chunk of user interface with its own life cycle.
-Fragment must exist within an Activity.
-Interaction with fragments is done through FragmentManager.
-Fragment API was introduced in API 11
-Use SherlockFragmentActivity , SherlockFragment
instead of native Fragment API
by Eakapong Kattiya
Fragment (>API 11)
Monday, July 15, 13