2 回答
TA贡献1813条经验 获得超2个赞
在适配器内创建一个方法来接收您的deviceName, ip, imgid参数。然后你只需要在点击按钮时调用它即可。
在适配器上:
public void refreshData(String[] deviceName, String[] ip, Integer[] imgid){
this.deviceName = deviceName;
this.ip = ip;
this.imgid = imgid;
notifyDataSetChanged();
}
然后点击按钮:
adapter.refreshData(yourDeviceNameVariable, yourIpVariable, yourImdidVariable);
我建议您将此代码放入一个方法中,其中 deviceName、ip 和 imdid 变量是全局变量,并在刷新适配器之前单击按钮时调用该方法。
Devices d = Devices.getInstance();
String s = d.getString();
String[][] all = getDevices(s);
deviceName = all[0];
ip = all[1];
String[] pre_imgid = all[2];
int x = pre_imgid.length;
Integer[] imgid = new Integer[x];
for (int i = 0; i < x; i++){
switch(pre_imgid[i]){
case "0":
imgid[i] = R.drawable.large_circle_szary; break;
case "1":
imgid[i] = R.drawable.large_circle_czerwony; break;
case "2":
imgid[i] = R.drawable.large_circle_pomarancz; break;
case "3":
imgid[i] = R.drawable.large_circle_zielony; break;
default:
imgid[i] = R.drawable.large_circle_niebieski; break;
}
}
TA贡献2051条经验 获得超10个赞
这是你需要解决的问题。我将为您提供更改要点,但您需要更新您的代码。
在启动/停止的 onclicklistener 中,您需要手动获取所选对象并更新数据,其中视图将动态更新。
在这里,您必须使用列表中的对象对父布局执行类似 settag() 的操作,我看到有多个列表,请使用要更新视图的列表的对象。
例如:// your parentlayout.setTag(devicename[position])
在onclicklistner中,需要获取这个对象
例如:// get your object from settag:- DeviceName dobj = (DeviceName) view.getTag()
更远:
dobj.updateview, // something your logic of updating view.
就这样,你可以开始了,但问题是你的班级设计。
建议:
创建另一个模型类,其中您的 deviname 和 ip 也是您想要在 onclicklistener 中编辑/更新的数据/字段
尝试使用列表/映射,最好将列表传递给适配器。
添加回答
举报