English 中文(简体)
更改某些物品
原标题:Custom ListView Adapter to change certain items

我撰写了一份定制清单,改编文,以改变我数据的视觉方面。 当我装上我的清单时,预期物品的出现会发生变化。 当我提出看法时,其他项目将随意改变,直到最终清单中的每一项目都对其出庭作了修改。

From what I ve read on SO about this type of code, I know that the position field in
public View getView(int position, View convertView, ViewGroup parent)
does not necessarily map to my data structure, since Android re-uses old views. This seems to be the behavior I m struggling to work with.

更新 采用“观点”方法,如文森特所示:

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
    View rowView = convertView;
    if (rowView == null)
    {
        LayoutInflater inflater = LayoutInflater.from(context);
        rowView = inflater.inflate(R.layout.rowlayout, null);
        ViewHolder viewHolder = new ViewHolder();
        viewHolder.text = (TextView) rowView.findViewById(R.id.tv01);
        rowView.setTag(viewHolder);
    }

    ViewHolder holder = (ViewHolder) rowView.getTag();
    String s = names[position];
    holder.text.setText(s);
    if (s.startsWith("a"))
    {
        holder.text.setTextColor(0xff00ffff);
    }

    return rowView;
}

我需要修改的项目是静态的,这样,如果采取更好的办法,而不是在日常工作中加以改变,那也会奏效! 感谢您的任何帮助。

问题回答

your layout is being reused by android so that is why you are getting this output.What you need to do is to have a class that will act as a static viewholder for each of your view and use it as tag .See this for reference

You re not modifying existing views. If convertView is not null that means Android is recycling the view instead of inflating it, but you still have to update it with the new values. Something like this will work:

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

if(convertView == null) {
    convertView = mInflater.inflate(R.layout.rowlayout, null);
    holder = new ViewHolder();  
iii
else {
    holder = (ViewHolder) convertView.getTag();
iii
holder.title = (TextView) convertView.findViewById(R.id.tv01); 
convertView.setTag(holder);

return convertView;

iii





相关问题
Android - ListView fling gesture triggers context menu

I m relatively new to Android development. I m developing an app with a ListView. I ve followed the info in #1338475 and have my app recognizing the fling gesture, but after the gesture is complete, ...

AsyncTask and error handling on Android

I m converting my code from using Handler to AsyncTask. The latter is great at what it does - asynchronous updates and handling of results in the main UI thread. What s unclear to me is how to handle ...

Android intent filter for a particular file extension?

I want to be able to download a file with a particular extension from the net, and have it passed to my application to deal with it, but I haven t been able to figure out the intent filter. The ...

Android & Web: What is the equivalent style for the web?

I am quite impressed by the workflow I follow when developing Android applications: Define a layout in an xml file and then write all the code in a code-behind style. Is there an equivalent style for ...

TiledLayer equivalent in Android [duplicate]

To draw landscapes, backgrounds with patterns etc, we used TiledLayer in J2ME. Is there an android counterpart for that. Does android provide an option to set such tiled patterns in the layout XML?

Using Repo with Msysgit

When following the Android Open Source Project instructions on installing repo for use with Git, after running the repo init command, I run into this error: /c/Users/Andrew Rabon/bin/repo: line ...

Android "single top" launch mode and onNewIntent method

I read in the Android documentation that by setting my Activity s launchMode property to singleTop OR by adding the FLAG_ACTIVITY_SINGLE_TOP flag to my Intent, that calling startActivity(intent) would ...

From Web Development to Android Development

I have pretty good skills in PHP , Mysql and Javascript for a junior developer. If I wanted to try my hand as Android Development do you think I might find it tough ? Also what new languages would I ...

热门标签