0
在我的應用程序提升自定義適配器,我有與顯示背景適配器 我想在ascendig的排序方式不同項目加載自定義項目列表的列表(使用距離值)適配器與元素這段代碼。進入onCretaeView:Android的排序按距離
cardViewList = new ArrayList<>();
View vw=inflater.inflate(R.layout.jsonparse_fragment, container, false);
lv=(ListView) vw.findViewById(R.id.listView1);
lv.setDivider(null);
lv.setDividerHeight(0);
final Double lat = gpsTracker.getLatitude();
Double LatitudineUber = lat;
Double lon = gpsTracker.getLongitude();
Double LongitudineUber = lon;
cardViewList.clear();
if (flag_above35==1 && flag_below35==0 && flag_hybrid==0 && flag_position==0 && flag_tempo==0 && flag_conducente == 0)
{
car2go_flag=1;
new JSONAsynTask().execute("https://www.car2go.com/api/v2.1/vehicles?loc="+nome_citta+"&oauth_consumer_key=roadzapp&format=json");
}
else if (flag_above35==0 && flag_below35==1 && flag_hybrid==0 && flag_position==0 && flag_tempo==0 && flag_conducente == 0)
{
car2go_flag=2;
new JSONAsynTask().execute("https://www.car2go.com/api/v2.1/vehicles?loc="+nome_citta+"&oauth_consumer_key=roadzapp&format=json");
}
else if (flag_above35==1 && flag_below35==0 && flag_hybrid==1 && flag_position==0 && flag_tempo==0 && flag_conducente == 0)
{
car2go_flag=3;
new JSONAsynTask().execute("https://www.car2go.com/api/v2.1/vehicles?loc="+nome_citta+"&oauth_consumer_key=roadzapp&format=json");
}
else if (flag_above35==0 && flag_below35==1 && flag_hybrid==1 && flag_position==0 && flag_tempo==0 && flag_conducente == 0)
{
car2go_flag=4;
new JSONAsynTask().execute("https://www.car2go.com/api/v2.1/vehicles?loc="+nome_citta+"&oauth_consumer_key=roadzapp&format=json");
}
else if (flag_above35==0 && flag_below35==0 && flag_hybrid==1 && flag_position==0 && flag_tempo==0 && flag_conducente == 0)
{
car2go_flag=5;
new JSONAsynTask().execute("https://www.car2go.com/api/v2.1/vehicles?loc="+nome_citta+"&oauth_consumer_key=roadzapp&format=json");
}
else if (flag_above35==0 && flag_below35==0 && flag_hybrid==0 && flag_position==0 && flag_tempo==0 && flag_conducente == 0)
{
car2go_flag=0;
new JSONAsynTask().execute("https://www.car2go.com/api/v2.1/vehicles?loc="+nome_citta+"&oauth_consumer_key=roadzapp&format=json");
if (flag_uber==1) {
uber_flag=0;
new JSONAsynTask1(getContext().getApplicationContext()).execute();
}
if (flag_jcd==1) {
jcd_flag=0;
//new JSONAsynTask2().execute();
new JSONAsynTask3().execute();
}
if (flag_bitaksi==1) {
bitaksi_flag=0;
new JSONAsynTask4(getContext().getApplicationContext()).execute();
}
if (flag_lyft==1) {
lyft_flag = 0;
new JSONAsynTask5().execute();
}
}
else if (flag_above35==0 && flag_below35==0 && flag_hybrid==0 && flag_position==1 && flag_tempo==0 && flag_conducente == 0)
{
car2go_flag=6;
new JSONAsynTask().execute("https://www.car2go.com/api/v2.1/vehicles?loc="+nome_citta+"&oauth_consumer_key=roadzapp&format=json");
if (flag_uber==1) {
uber_flag=1;
new JSONAsynTask1(getContext().getApplicationContext()).execute();
}
if (flag_jcd==1) {
jcd_flag=1;
//new JSONAsynTask2().execute();
new JSONAsynTask3().execute();
}
if (flag_bitaksi==1) {
bitaksi_flag=1;
new JSONAsynTask4(getContext().getApplicationContext()).execute();
}
if (flag_lyft==1) {
lyft_flag=1;
new JSONAsynTask5().execute();
}
}
else if (flag_above35==0 && flag_below35==0 && flag_hybrid==0 && flag_position==0 && flag_tempo==1 && flag_conducente == 0)
{
car2go_flag=7;
new JSONAsynTask().execute("https://www.car2go.com/api/v2.1/vehicles?loc="+nome_citta+"&oauth_consumer_key=roadzapp&format=json");
if (flag_uber==1) {
uber_flag=2;
new JSONAsynTask1(getContext().getApplicationContext()).execute();
}
if (flag_bitaksi==1) {
bitaksi_flag=2;
new JSONAsynTask4(getContext().getApplicationContext()).execute();
}
if (flag_lyft==1) {
lyft_flag=2;
new JSONAsynTask5().execute();
}
}
else if (flag_above35==0 && flag_below35==0 && flag_hybrid==0 && flag_position==0 && flag_tempo==0 && flag_conducente == 1)
{
//car2go_flag=8;
//new JSONAsynTask().execute("https://www.car2go.com/api/v2.1/vehicles?loc="+nome_citta+"&oauth_consumer_key=roadzapp&format=json");
if (flag_uber==1) {
uber_flag=1;
new JSONAsynTask1(getContext().getApplicationContext()).execute();
}
if (flag_bitaksi==1) {
bitaksi_flag=1;
new JSONAsynTask4(getContext().getApplicationContext()).execute();
}
if (flag_lyft==1) {
lyft_flag=1;
new JSONAsynTask5().execute();
}
}
adapter = new CardViewAdapter(getActivity(), R.layout.new_item_list, cardViewList);
Collections.sort(cardViewList, new Comparator<CardView>() {
@Override
public int compare(CardView lhs, CardView rhs) {
Double d1 = Double.parseDouble(lhs.getDistance())/1000.0;
Double d2 = Double.parseDouble(rhs.getDistance())/1000.0;
if (d1 == d2) {
return 0;
}
if (d1 > d2) {
return 1;
}
return -1;
}
});
lv.setAdapter(adapter);
但排序不起作用。 我的代碼錯了? 有什麼幫助嗎?
人你的代碼是非常的混亂。沒有冒犯性,只是一些建設性的批評。我敢肯定,你可以更好地做到這一點沒有那麼多如果,別人的和asynchtask創作。此外,您的問題基本上是第一個答案所說的:您需要等待數據運行排序。另外:不要在比較方法中解析,這是非常低效的。 – breakline