2012-07-31 77 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的整数。这就是为什么它在编译时不显示任何内容。