2012-02-20 2 views
-1

나는 listview를 가지고 있으며, 나는 그것을 채우기위한 의도를 시작한다. 그러나 목록에는 기본 이미지와 텍스트가 표시되지 않습니다. 그것은 다른 이미지와 텍스트로 나타나기로되어 있습니다.listView를 채울 수 없습니까?

나는 두 개의 배열을 가지고 ... 하나는 문자열 형식이고 다른 하나는 당김 유형입니다 ...하지만 내 목록은 나에게 내가 원하는 이들의 아무도를 표시하지 않습니다

내 ListActivity :

public class fillLeftMenu extends ListActivity { 

private View menu; 
ImageView findLocation; 
Spinner cityList; 
ListView leftList; 
String [] textIndex; 
Drawable [] imageIndex; 
ArrayList<LeftListItems> Left; 
listAdapter lAdapter; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);  

    dataTransfer dt = BonubonActivity.deneme; 
    menu = dt.getView(); 


    findLocation = (ImageView) menu.findViewById(R.id.image_findLocation); 
    leftList = (ListView) menu.findViewById(R.id.list); 

    // add items to listView 
    Left = new ArrayList<LeftListItems>(); 
    textIndex = new String[] {"Bugünün Fırsatları", "Son Dakika Bonusları", "Kadın", "Aile", "Çocuk", "Alışveriş", "Şehirden Kaçış", "Kışa Özel"}; 
    imageIndex = new Drawable[] {leftList.getResources().getDrawable(R.drawable.kucukicon_01),leftList.getResources().getDrawable(R.drawable.kucukicon_02),leftList.getResources().getDrawable(R.drawable.kucukicon_03),leftList.getResources().getDrawable(R.drawable.kucukicon_04),leftList.getResources().getDrawable(R.drawable.kucukicon_05),leftList.getResources().getDrawable(R.drawable.kucukicon_06),leftList.getResources().getDrawable(R.drawable.kucukicon_07),leftList.getResources().getDrawable(R.drawable.kucukicon_08)}; 

    lAdapter = new listAdapter(menu.getContext(), R.layout.list_item, Left); 
    leftList.setAdapter(lAdapter); 

    getIndex(); 

    lAdapter.notifyDataSetChanged(); 

    leftList.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
     } 

    }); 

    finish(); 

} 

private void getIndex() { 
    try{ 
     LeftListItems item = new LeftListItems(); 
     for(int i=0; i<textIndex.length; i++) { 
      item.setText(textIndex[i]); 
      item.setImage(imageIndex[i]); 
      Left.add(item); 
      lAdapter.add(Left.get(i)); 
     } 
    } 
    catch (Exception e) { 
     Log.e("BACKGROUND_PROC", e.getMessage()); 
    } 
} 

private class listAdapter extends ArrayAdapter<LeftListItems> { 

    private ArrayList<LeftListItems> items; 
    private Context ctx; 

    public listAdapter(Context ctx, int textViewResourceId, ArrayList<LeftListItems> items) { 
     super(ctx, textViewResourceId, items); 
     this.ctx = ctx; 
     this.items = items; 
    } 


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

     View v = convertView; 
     if (v == null) { 
      LayoutInflater vi = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = vi.inflate(R.layout.list_item, null); 
     } 

     LeftListItems index = items.get(position); 
     if(index != null) { 
      TextView text = (TextView) v.findViewById(R.id.text); 
      ImageView img = (ImageView) v.findViewById(R.id.icon); 
      if(text != null) 
       text.setText(index.getText()); 
      if(img != null) 
       img.setBackgroundDrawable(index.getImage()); 
     } 

     return v; 
    }  
} 

} 
+0

읽기 쉽도록이 문제를 해결했습니다. 그러나 나는이 인용문이 의미하는 바를 이해할 수 없다. 다시 말해 줄 수 있니? "String 배열 에서처럼 내가 부여한 덩어리를 채우지 않는다는 것을 의미합니까?" – prolink007

+0

두 배열, 하나는 문자열 및 다른 drawable ...하지만 내 목록에 내가 원하는 이들 중 아무도 표시되지 않습니다 ... – yahya

답변

0

어댑터를 만들고 목록으로 설정하기 전에 getIndex() 메서드를 호출 해보십시오. 이와 같이 :

getIndex(); 

//then create new adapter 

lAdapter = new listAdapter(menu.getContext(), R.layout.list_item, Left); 
leftList.setAdapter(lAdapter); 
+0

다음 그것은 NullPointerException 오류, 'getIndex()에서도 사용되는 cuz lAdapter 오류를 제공합니다. 아직 정의되지 않았습니다 ... – yahya

+0

미안하지만, 사용자 정의 어댑터에서'add' 메소드를 사용하거나'getIndex()'에서이 라인을 제거해보십시오. 'lAdapter.add (Left.get (i)) ;' – luciferche

관련 문제