DBに保存されているlistview
さまざまなデータがあり、特定のデータをクリックするとその詳細が表示され、また、の位置を介してアダプタークラスを使用するlistview
と、表示するデータの詳細が取得されます。
listview
結果から と の検索を追加する必要がありlistview
ます。データをクリックすると、詳細が表示されます。誰でもこのコードを提供できますか。
public class CustomerAdapter は BaseAdapter を拡張します{
public CustomerAdapter(Context context) {
this.context = context;
this.layoutInflater = LayoutInflater.from(context);
reload(0, TAKE);
}
private void reload(int skip, int take)
{
totalSize = customers.size();
System.out.println("Total Size: "+totalSize);
loadedCustomer = loadCustomers(skip, take);
}
private ArrayList<HashMap<String, Object>> loadCustomers(int skip, int take)
{
ArrayList<HashMap<String, Object>> arrayList = new ArrayList<HashMap<String,Object>>();
Query query = new Query();
query.select("x.fname, x.lname, x.surrogateKey, x.id");
query.from("Customer", "x");
query.orderBy("id", SortOrder.ASCENDING);
query.setTake(take);
query.setSkip(skip);
lowIndex = skip;
highIndex = lowIndex;
QueryResultSet rs = SUP101.SUP101DB.executeQuery(query);
while(rs.next())
{
String fname = rs.getString(1);
String lname = rs.getString(2);
long sk = rs.getLong(3);
HashMap<String, Object> tempHashMap = new HashMap<String, Object>();
tempHashMap.put(NAME, " " + fname + " " + lname);
tempHashMap.put("sk", sk);
arrayList.add(tempHashMap);
highIndex++;
}
return arrayList;
}
public int getCount() {
return totalSize;
}
public Object getItem(int position) {
reloadIfNeeded(position);
return loadedCustomer.get(position - lowIndex);
}
@SuppressWarnings("unchecked")
public String getSK(int position)
{
HashMap<String, Object> map = (HashMap<String, Object>)getItem(position);
return map.get("sk").toString();
}
private void reloadIfNeeded(int newPosition)
{
if(newPosition < lowIndex || newPosition >= highIndex)
{
int lowIndex = (newPosition);
reload(lowIndex, TAKE);
}
}
public void refreshUI(boolean force)
{
if(force)
{
reload(lowIndex, TAKE);
((Activity)context).runOnUiThread(
new Runnable()
{
public void run()
{
CustomerAdapter.this.notifyDataSetChanged();
}
}
);
}
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = null;
if(convertView==null){
convertView = layoutInflater.inflate(R.layout.customer, null);
}
tv = (TextView)convertView.findViewById(R.id.textView1);
reloadIfNeeded(position);
tv.setText(loadedCustomer.get(position - lowIndex).get(NAME).toString());
return convertView;
}
// メインメニュー クラス
Mainmenu.this.runOnUiThread(new Runnable()
{
public void run()
{
adapter1 = new CustomerAdapter(Mainmenu.this);
listView.setAdapter(adapter1);
array_sort = new ArrayList<String>();
adapter1 = new CustomerAdapter(Mainmenu.this);
listView.setAdapter(adapter1);
inputSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
// When user changed the Text
Mainmenu.this.adapter1.getFilter().filter(cs);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
listView.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> a, View v, int position, long id)
{
Intent intent = new Intent(Mainmenu.this, Detailview.class);
intent.putExtra("sk", adapter1.getSK(position));
Mainmenu.this.startActivityForResult(intent, REQUEST_DETAIL);
}
});
}
});
}
}).start();