查看android

时间:2016-06-17 12:00:48

标签: android listview

当我添加第一个项目时它正常工作但是当我添加第二个项目时它显示了listView项目的布局,但是文本框中没有像这些图片那样的数据: ScreenShot 1ScreenShot 2

我的适配器代码:

public class Myadp extends ArrayAdapter<String> {
private String[] data;
Context context;
private static LayoutInflater inflater = null;
public Myadp(Context context, int resource, int textViewItem, String[] strings) {
    super(context, resource, textViewItem, strings);
    this.data = strings;
    this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View row = inflater.inflate(R.layout.listtemp, null, true);
    TextView textView = (TextView) row.findViewById(R.id.textView2);
    textView.setText(this.data[position]);
    return row;
}}

几个月前我在android studio中制作了一个应用程序,我使用inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);代替inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);,但现在android studio无法识别它

2 个答案:

答案 0 :(得分:1)

也许这可以帮到你:

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

    ViewHolder viewHolder;

    if (convertView == null) {
        viewHolder = new ViewHolder();
        convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item_venue, parent, false);

    // findViewByIds...

    convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }

//set your data to TextView or what you have to do;

    return convertView;
}

这种方式列表将重用已创建的行,如果它们不存在,它将创建它们。

希望这有帮助!

答案 1 :(得分:0)

Try this:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if(row == null){
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    row = inflater.inflate(R.layout.listtemp, null, true);
}
    TextView textView = (TextView) row.findViewById(R.id.textView2);
    textView.setText(this.data[position]);
    return row;
}

}