Android 通过ListItem.add绘制listview始终返回一个位置=0

Android 通过ListItem.add绘制listview始终返回一个位置=0,android,listview,Android,Listview,我有一个由3个元素组成的数组,我试图在listview中绘制它。问题是它只绘制第一个条目,因为getView总是返回一个position=0 为什么呢?我做错了什么 我的主要java(片段): 更改onActivityCreated方法,如下所示 @Override public void onActivityCreated(final Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Strin

我有一个由3个元素组成的数组,我试图在listview中绘制它。问题是它只绘制第一个条目,因为getView总是返回一个position=0

为什么呢?我做错了什么

我的主要java(片段):


更改onActivityCreated方法,如下所示

@Override
public void onActivityCreated(final Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

String ip;

listPSGitem = new ArrayList<>();


listPSGitem.clear();
StoreDevDiscovery store = new StoreDevDiscovery();
// this is where I store the data  
int count = store.getMax();

for(int i=0;i<count;i++){
    ip = store.getIPDiscovery(i);

    PSGitem item = new PSGitem();
    item.setIp(ip);

    listPSGitem.add(item);


}
psgAdapter = new PSGadaptater(getActivity(), listPSGitem);
list.setAdapter(psgAdapter);
}
@覆盖
已创建活动上的公共无效(最终捆绑包保存状态){
super.onActivityCreated(savedInstanceState);
字符串ip;
listPSGitem=newarraylist();
listPSGitem.clear();
StoreDevDiscovery store=新StoreDevDiscovery();
//这是我存储数据的地方
int count=store.getMax();

对于(int i=0;i而言,问题在于您正在从一组空项创建适配器:

listPSGitem = new ArrayList<>();
psgAdapter = new PSGadaptater(getActivity(), listPSGitem);
listPSGitem=newarraylist();
psgAdapter=新的psgAdapter(getActivity(),listPSGitem);

如果以后要向适配器添加项目,应将项目添加到适配器
listIp
list变量,然后使用
notifyDataSetChanged()让适配器知道此更改
method.

没有更改。奇怪的是,第一个项目画得很好,但由于变量位置仍然等于0,因此没有更多的条目出现问题。我很惭愧地告诉你……事实上,我的list.xml包含的内容比我的适配器声明的多……对不起。有时你搜索东西时,它离你的眼睛很近。
public class PSGitem {
    private String ip1;
    public String getIp(){
        return ip1;
    }

    public void setIp(String ip){
        ip1 = ip;
    }
}
@Override
public void onActivityCreated(final Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

String ip;

listPSGitem = new ArrayList<>();


listPSGitem.clear();
StoreDevDiscovery store = new StoreDevDiscovery();
// this is where I store the data  
int count = store.getMax();

for(int i=0;i<count;i++){
    ip = store.getIPDiscovery(i);

    PSGitem item = new PSGitem();
    item.setIp(ip);

    listPSGitem.add(item);


}
psgAdapter = new PSGadaptater(getActivity(), listPSGitem);
list.setAdapter(psgAdapter);
}
listPSGitem = new ArrayList<>();
psgAdapter = new PSGadaptater(getActivity(), listPSGitem);