2014-11-21 25 views
0

我正在工作baseadapter。我成功地在列表视图中调整图像和文本。我有3个图像和文本。现在我想通过 位置来改变列表视图中点击图片和文字的背景,这是一个我底座适配器代码Android更改图像和文本在列表中查看按位置与开关

public class SlideMenuAdapter extends BaseAdapter { 
private Context mContext; 
private final String[] menu_items_id; 

private final int[] Imageid; 
TextView textView; 
ImageView imageView; 

private static LayoutInflater inflater = null; 

public SlideMenuAdapter(Context context, String[] names, int[] Imageid) 
     { 
    mContext = context; 

    this.Imageid = Imageid; 
    this.menu_items_id = names; 
    inflater = (LayoutInflater) mContext 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 

@Override 
public int getCount() { 

    return Imageid.length; 
} 

@Override 
public Object getItem(int position) { 

    return null; 
} 

@Override 
public long getItemId(int position) { 

    return 0; 
} 

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

    View grid; 

    grid = new View(mContext); 
    grid = inflater.inflate(R.layout.azercell_slidemenu_adaper, null); 
    textView = (TextView) grid.findViewById(R.id.desc); 
    imageView = (ImageView) grid.findViewById(R.id.photo); 

    textView.setText(menu_items_id[position]); 

    textView.setTypeface(MainmoviesActivity.dejavusans); 





    imageView.setImageResource(Imageid[position]); 
    return grid; 
} 

} 这是一个主要的Java代码

int[] menu_images = { R.drawable.menu_schedule, R.drawable.menu_about, 
     R.drawable.menu_booking }; 

int[] menu_imagesover = { R.drawable.schedule_ove, R.drawable.about_over, 
     R.drawable.booking_over }; 
private String[] menu_namesEng = { "schedule_ove", "about_over", "about_over" }; 






    listView.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 

      TextView textView1 = (TextView) parent.findViewById(R.id.desc); 

      ImageView imageView=(ImageView)parent.findViewById(R.id.photo); 
      switch (position) { 
      case 0: 
       textView1.setTextColor(Color.parseColor("#8f332a")); 
       imageView.setImageResource(menu_imagesover[position]); 
       break; 

      case 1: 
       textView1.setTextColor(Color.parseColor("#ffffff")); 
       imageView.setImageResource(menu_imagesover[position]); 
       break; 

      default: 
       break; 
      } 


     } 

    }); 

我可以改变形象,文字只列出视图的冷杉项目,当我点击第二项时,第一项的图像和文字又改变了。我究竟做错了什么?如果有人知道解决方案,请帮助我。

+0

使用View持有人获得更好的性能。 – Piyush 2014-11-21 13:44:23

回答

相关问题