2012-07-31 26 views
1

因此,我有一個ImageAdapter,我需要在2個不同的佈局中使用2 ListView。我首先使用它,然後想要過濾數組,然後將這些值放入另一個我用於第二個listview的數組。篩選陣列列表以用於映像適配器

我的圖像適配器

package com.weinco.list; 

import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.ImageButton; 
import android.widget.ImageView; 
import android.widget.TextView; 

import com.androidquery.AQuery; 
import com.weinco.R; 
import com.weinco.fragments.StandorteFragment; 
import com.weinco.webservice.entity.Standort; 

import com.weinco.webservice.entity.Standorts; 

public class LocationMenuAdapter extends BaseAdapter { 
private LayoutInflater mInflater; 
private AQuery aQuery; 
private Standorts standorts; 
private Standort standort; 
private StandorteFragment standorteFragment; 

public LocationMenuAdapter(StandorteFragment standorteFragment, Standorts standorts) { 

    this.standorteFragment = standorteFragment; 
    this.standorts = standorts; 
    this.aQuery = standorteFragment.aQuery; 
    mInflater = LayoutInflater.from(standorteFragment.getActivity()); 

} 

public int getCount() { 
    return standorts.size(); 
} 

public Object getItem(int position) { 
    return position; 
} 

public long getItemId(int position) { 
    return position; 
} 

public Standort getStandort(int i) { 
    return standorts.get(i); 
} 

public View getView(int position, View convertView, ViewGroup parent) { 

    ListContent holder = null; 

    Standort standort = getStandort(position); 

    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.listviewinflate, null); 

     holder = new ListContent(); 
     holder.text = (TextView) convertView.findViewById(R.id.TextView01); 

     convertView.setTag(holder); 
    } else { 
     holder = (ListContent) convertView.getTag(); 

    } 


     holder.text.setText(standort.Name); 

    return convertView; 
} 

class ListContent { 
    TextView text; 

} 
} 

,我使用

loadLocationMenuList(); 
loadBussinessLunchLoc(); 



private void loadBussinessLunchLoc() { 
    ServiceProxy.createWebServiceTask(getActivity(), new RemoteCallListener() { 

    @Override 
    public void onRemoteCallError(String response) { 
    // TODO Auto-generated method stub 

    } 

    @Override 
    public void onRemoteCallComplete(Object response) { 
    Log.d("debug", "response is = " + response + "\t" + response.getClass()); 
    Standorts standorts = (Standorts) response; 
    for(Standort standort : standorts) 
     { 
     if(standort.BusinessLunch==true){ 
      filteredstandorts.add(standort); 
     } 

     } 

    locationMenuAdapter = new LocationMenuAdapter(StandorteFragment.this, filteredstandorts); 
    menuItemListLoc2page.setAdapter(locationMenuAdapter); 

    } 

    @Override 
    public void onNoInternetError() { 
    // TODO Auto-generated method stub 

    } 

    @Override 
    public void onNoAccess() { 
    // TODO Auto-generated method stub 

    } 
    }, true).invokeGetStandorte(); 
} 

private void loadLocationMenuList() { 
    ServiceProxy.createWebServiceTask(getActivity(), new RemoteCallListener() { 

    @Override 
    public void onRemoteCallError(String response) { 
    // TODO Auto-generated method stub 

    } 

    @Override 
    public void onRemoteCallComplete(Object response) { 
    Log.d("debug", "response is = " + response + "\t" + response.getClass()); 
    Standorts standorts = (Standorts) response; 

    locationMenuAdapter = new LocationMenuAdapter(StandorteFragment.this, standorts); 
    menuItemListLoc.setAdapter(locationMenuAdapter); 

    } 

    @Override 
    public void onNoInternetError() { 
    // TODO Auto-generated method stub 

    } 

    @Override 
    public void onNoAccess() { 
    // TODO Auto-generated method stub 

    } 
    }, true).invokeGetStandorte(); 
} 

我得到下一個logcat的日誌功能:

08-01 11:06:04.171: E/AndroidRuntime(16286): FATAL EXCEPTION: main 
08-01 11:06:04.171: E/AndroidRuntime(16286): java.lang.NullPointerException 
08-01 11:06:04.171: E/AndroidRuntime(16286): at com.weinco.list.LocationMenuAdapter.getCount(LocationMenuAdapter.java:37) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at android.widget.ListView.setAdapter(ListView.java:454) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at com.weinco.fragments.StandorteFragment$10.onRemoteCallComplete(StandorteFragment.java:283) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at com.weinco.webservice.CallWebServiceTask.onPostExecute(CallWebServiceTask.java:543) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at com.weinco.webservice.CallWebServiceTask.onPostExecute(CallWebServiceTask.java:1) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at android.os.AsyncTask.finish(AsyncTask.java:417) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at android.os.AsyncTask.access$300(AsyncTask.java:127) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at android.os.Looper.loop(Looper.java:130) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at android.app.ActivityThread.main(ActivityThread.java:3744) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at java.lang.reflect.Method.invokeNative(Native Method) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at java.lang.reflect.Method.invoke(Method.java:507) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
08-01 11:06:04.171: E/AndroidRuntime(16286): at dalvik.system.NativeStart.main(Native Method) 

我沒有IDEEA我有什麼做的糾正這一點,我在網上搜索了一些過濾器,但是我發現的是比android更多的java,並且我可以真正理解什麼是t嘿,正在做。

+1

您應該添加您的logcat輸出,以便我們可以得到關閉的力量的起源。 – 2012-07-31 11:58:39

+0

沒有更多的強制關閉,所以LogCat不會幫助。我使用相同的行數獲得第二個列表,但不是擁有街道,所有行只是說「False」 – 2012-07-31 13:09:29

+0

您究竟如何過濾這些值,查看您使用的代碼基本上是相同的代碼? – Luksprog 2012-07-31 17:25:21

回答

0

在他們告訴我使BusinessLunch成爲布爾值的文檔中,但是從web服務調用中他們向我發送的值爲0或1的整數。這就是爲什麼它在編譯時不顯示任何內容。