- Beranda
- Komunitas
- Tech
- Programmer Forum
[ask] Search custom listView (Android)
TS
ate702
[ask] Search custom listView (Android)
agan,, minta tolong ni,,, udah tak otak-atik scriptnya tapi tetep error pas diRun, ane kan mau nambahin fitur pencarian ke dalam listView ane... tpi setelah coba tak tambahi malah jadi error,, gimana ni gan ada yg bisa bantu gak..
ini scriptnya..
ini scriptnya..
Spoiler for Lihat Lengkap:
Code:
package com.arifrohmanhakim.bookcollection;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RatingBar;
import android.widget.TextView;
public class BookKategori extends ListActivity {
//variable
private JSONObject jObject;
private String jsonResult ="";
private EditText et;
private ArrayList<String> array_sort;
int textlength=0;
String[] idbuku;
String[] cover;
String[] judulbuku;
String[] penerbit;
String[] rating;
ListView listView;
Menu menu;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_detail_kategori);
RefreshBukuKategori();
}
//Method Refresh daftar Kategori
public void RefreshBukuKategori() {
try {
jsonResult = Catalog.ca.getRequest("http://10.0.2.2/dataku/daftarbukukategori.php?id="+getIntent().getStringExtra("id"));
jObject = new JSONObject(jsonResult);
JSONArray menuitemArray = jObject.getJSONArray("bukukategori");
idbuku = new String[menuitemArray.length()];
judulbuku = new String[menuitemArray.length()];
cover = new String[menuitemArray.length()];
penerbit = new String[menuitemArray.length()];
rating = new String[menuitemArray.length()];
for (int i = 0; i < menuitemArray.length(); i++)
{
idbuku[i] = menuitemArray.getJSONObject(i).getString("id_buku").toString();
judulbuku[i] = menuitemArray.getJSONObject(i).getString("judul").toString();
cover[i] = menuitemArray.getJSONObject(i).getString("cover").toString();
penerbit[i] = menuitemArray.getJSONObject(i).getString("penerbit").toString();
rating[i] = menuitemArray.getJSONObject(i).getString("rating").toString();
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
listView = (ListView) findViewById(R.id.listbukukategori);
et = (EditText) findViewById(R.id.pencarian);
array_sort=new ArrayList<String> (Arrays.asList(judulbuku));
setListAdapter(new bsAdapter(this, judulbuku, cover, penerbit, rating));
et.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable s)
{
// Abstract Method of TextWatcher Interface.
}
public void beforeTextChanged(CharSequence s,
int start, int count, int after)
{
// Abstract Method of TextWatcher Interface.
}
public void onTextChanged(CharSequence s,
int start, int before, int count)
{
textlength = et.getText().length();
array_sort.clear();
for (int i = 0; i < judulbuku.length; i++)
{
if (textlength <= judulbuku[i].length())
{
if(judulbuku[i].toLowerCase().contains(
et.getText().toString().toLowerCase().trim()))
{
array_sort.add(judulbuku[i]);
}
}
}
AppendList(array_sort);
}
});
}
public void AppendList(ArrayList<String> str)
{
setListAdapter(new bsAdapter(this, judulbuku, cover, penerbit, rating));
}
public class bsAdapter extends BaseAdapter
{
private Context context;
private final String[] judul;
private final String[] cover;
private final String[] penerbit;
private final String[] rating;
public bsAdapter(Context context, String[] jdl, String[] cvr, String[] pnb, String[] rtg)
{
// TODO Auto-generated constructor stub
this.context = context;
this.judul = jdl;
this.cover = cvr;
this.penerbit = pnb;
this.rating = rtg;
}
public int getCount()
{
// TODO Auto-generated method stub
return array_sort.size();
}
public Object getItem(int position)
{
// TODO Auto-generated method stub
return array_sort.get(position);
}
public long getItemId(int position)
{
// TODO Auto-generated method stub
return array_sort.size();
}
public View getView(final int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
RatingBar rb;
if (convertView == null) {
gridView = new View(context);
gridView = inflater.inflate(R.layout.item_buku_kategori, null);
// untuk text judul buku
TextView textView = (TextView) gridView.findViewById(R.id.judulbukulist);
textView.setText(judul[position]);
// untuk text penerbit
TextView textPenerbit = (TextView) gridView.findViewById(R.id.penerbitBuku);
textPenerbit.setText(penerbit[position]);
// untuk gambar cover buku
ImageView imgView = (ImageView) gridView.findViewById(R.id.coverbuku);
Bitmap bitmap = null;
//untuk rating
rb = (RatingBar) gridView.findViewById(R.id.ratingBar);
float a = (Float.valueOf(rating[position])).floatValue();
rb.setRating(a);
try {
URL urlImage = new URL(
"http://10.0.2.2/dataku/cover_buku/"+cover[position]);
HttpURLConnection connection = (HttpURLConnection) urlImage
.openConnection();
InputStream inputStream = connection.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
imgView.setImageBitmap(bitmap);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else {
gridView = (View) convertView;
}
return gridView;
}
}
//menu
public boolean onCreateOptionsMenu(Menu menu) {
this.menu = menu;
menu.add(0, 1, 0, "Refresh");
menu.add(0, 2, 0, "Back");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
RefreshBukuKategori();
return true;
case 2:
finish();
return true;
}
return false;
}
}
0
948
Kutip
4
Balasan
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Urutan
Terbaru
Terlama
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Komunitas Pilihan