Sun*_*Sun 2 java android arraylist
我有一个项目列表,其中每个项目都包含产品价格,现在我想根据用户输入过滤我的arraylist
我接受最低和最高价格范围,现在我想显示仅在这些价格范围内的记录.
我正在使用btnSearch过滤列表,以显示两个值之间的记录,就像我想要显示那些在这两个值内的记录;
20000至50000
btnSearch.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
editMin.getText().toString();
editMax.getText().toString();
}
});
Run Code Online (Sandbox Code Playgroud)
我使用下面的代码来过滤基于高价到低价范围的记录,为此我使用下面的代码:
btnHTL.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Collections.sort(arrayList, new Comparator<Home>() {
@Override
public int compare(Home arg1, Home arg2) {
// TODO Auto-generated method stub
Integer obj1 = new Integer(arg1.getPrice().replace(",", ""));
Integer obj2 = new Integer(arg2.getPrice().replace(",", ""));
return (obj2).compareTo(obj1);
}
});
for (int i = 0; i < arrayList.size(); i++) {
System.out.println("HTL:--" + arrayList.get(i).getPrice());
}
adapter.notifyDataSetChanged();
}
});
Run Code Online (Sandbox Code Playgroud)
btnSearch.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Integer objMin = new Integer(editMin.getText().toString());
Log.d("min:", String.valueOf(objMin));
Integer objMax = new Integer(editMax.getText().toString());
Log.d("max:", String.valueOf(objMax));
ArrayList<Home> temp_arraylist = new ArrayList<Home>();
for (int i = 0; i < arrayList.size(); i++) {
int price = (Integer.parseInt(arrayList.get(i).getPrice().replace(",", "")));
if(price >= objMin && price <= objMax){
temp_arraylist.add(arrayList.get(i));
}
}
adapter = new HomeAdapter(getApplicationContext(), R.layout.adapter_home, temp_arraylist);
listview.setAdapter(adapter);
}
});
Run Code Online (Sandbox Code Playgroud)
并比较对象的arraylist ..请参阅此链接http://beginnersbook.com/2013/12/java-arraylist-of-object-sort-example-comparable-and-comparator/
| 归档时间: |
|
| 查看次数: |
2461 次 |
| 最近记录: |