
Buka Eclipse buat project baru, pada folder res/layout, activity_main.xml biarkan saja. Buat file baru dengan nama list_item_title_navigation.xml , lalu pastekan koding berikut ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <? xml version = "1.0" encoding = "utf-8" ?> android:layout_width = "match_parent" android:layout_height = "fill_parent" android:padding = "5dp" > < ImageView android:id = "@+id/imgIcon" android:layout_width = "25dp" android:layout_height = "25dp" android:layout_alignParentLeft = "true" android:layout_alignParentTop = "true" android:src = "@drawable/ic_launcher" android:layout_marginRight = "5dp" /> < TextView android:id = "@+id/txtTitle" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerVertical = "true" android:layout_toRightOf = "@id/imgIcon" /> </ RelativeLayout > |
Pada folder src/namapackage, buat file baru dengan nama SpinnerNavItem.java pastekan koding dibawah ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package com.spinner; public class SpinnerNavItem { private String title; private int icon; public SpinnerNavItem(String title, int icon){ this.title = title; this.icon = icon; } public String getTitle(){ return this.title; } public int getIcon(){ return this.icon; } } |
Buat file baru dengan nama StringParser.java, pastekan koding berikut ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package com.spinner; import java.util.ArrayList; public class StringParser { public StringParser() { } public ArrayList< Object > Parse(String input) { ArrayList< Object > output = new ArrayList< Object >(); int pointer = 0; String data = ""; while (pointer <= input.length()-1) { if (input.charAt(pointer) == '#') { output.add(data); data = ""; pointer++; } if (pointer < input.length()) { data+= input.charAt(pointer); } pointer++; } return output; } } |
Buat file baru dengan nama TitleNavigationAdapter.java, pastekan koding berikut ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | package com.spinner; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class TitleNavigationAdapter extends BaseAdapter { private ImageView imgIcon; private TextView txtTitle; private ArrayList< SpinnerNavItem > spinnerNavItem; private Context context; public TitleNavigationAdapter(Context context, ArrayList< SpinnerNavItem > spinnerNavItem) { this.spinnerNavItem = spinnerNavItem; this.context = context; } @Override public int getCount() { return spinnerNavItem.size(); } @Override public Object getItem(int index) { return spinnerNavItem.get(index); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertView = mInflater.inflate(R.layout.list_item_title_navigation, null); } imgIcon = (ImageView) convertView.findViewById(R.id.imgIcon); txtTitle = (TextView) convertView.findViewById(R.id.txtTitle); imgIcon.setVisibility(View.GONE); txtTitle.setText(spinnerNavItem.get(position).getTitle()); return convertView; } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertView = mInflater.inflate(R.layout.list_item_title_navigation, null); } imgIcon = (ImageView) convertView.findViewById(R.id.imgIcon); txtTitle = (TextView) convertView.findViewById(R.id.txtTitle); txtTitle.setText(spinnerNavItem.get(position).getTitle()); return convertView; } } |
ubah file MainActivity.java seperti koding dibawah ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | package com.spinner; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.impl.client.DefaultHttpClient; import android.app.ActionBar; import android.app.ActionBar.OnNavigationListener; import android.app.Activity; import android.os.Bundle; import android.os.StrictMode; import android.util.Log; import android.widget.Toast; public class MainActivity extends Activity implements OnNavigationListener { private ActionBar actionBar; private ArrayList< SpinnerNavItem > navSpinner; private TitleNavigationAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() .permitAll().build(); StrictMode.setThreadPolicy(policy); cek(); } private void cek() { actionBar = getActionBar(); actionBar.setDisplayShowTitleEnabled(false); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); navSpinner = new ArrayList< SpinnerNavItem >(); String urlll = "http://10.0.2.2/test/loads.php"; HttpClient httpclient = new DefaultHttpClient(); HttpRequestBase httpRequest = null; HttpResponse httpResponse = null; InputStream inputStream = null; String response = ""; StringBuffer buffer = new StringBuffer(); httpRequest = new HttpGet(urlll); try { httpResponse = httpclient.execute(httpRequest); } catch (ClientProtocolException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } try { inputStream = httpResponse.getEntity().getContent(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } byte[] data = new byte[512]; int len = 0; try { while (-1 != (len = inputStream.read(data))) { buffer.append(new String(data, 0, len)); } } catch (IOException e) { e.printStackTrace(); } try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } response = buffer.toString(); StringParser parser = new StringParser(); ArrayList< Object > output = parser.Parse(response); Object[] Output = output.toArray(); String[] content = new String[Output.length]; // content[0] = "semua"; Log.e("JJJJJ", Output.length + "=" + content.length); for (int i = 0; i < content.length; i++) { navSpinner.add(new SpinnerNavItem(Output[i].toString(), R.drawable.ic_launcher)); } adapter = new TitleNavigationAdapter(getApplicationContext(), navSpinner); actionBar.setListNavigationCallbacks(adapter, this); } @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { SpinnerNavItem s = navSpinner.get(itemPosition); Toast.makeText(getApplicationContext(), s.getTitle().toString(), Toast.LENGTH_SHORT).show(); return false; } } |

No comments:
Post a Comment