gpt4 book ai didi

android - 在另一个类中获取变量形式的自定义适配器

转载 作者:行者123 更新时间:2023-11-30 03:44:34 26 4
gpt4 key购买 nike

我捕获适配器构建的我的 ListView 内的复选框上的单击事件,并构建我需要在启动 ListView 的 View 中使用的 ArrayList

HiddenChannelsListAdapter.java

这是我在 getView() 中的 customAdapater 部分

public class HiddenChannelsListAdapter extends BaseAdapter {
public ArrayList<String> slist;


CheckBox checkbox = (CheckBox) convertView.findViewById(R.id.check_channel);
checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{

if ( isChecked ) {
if ( !slist.contains(i.get("id")) )
slist.add(i.get("id"));
} else {
for (int j=0;j<slist.size();j++) {
if ( slist.get(j) == i.get("id") ) {
slist.remove(j);
}
}
}
}
});

现在在我的类(class) ChannelsDialogPreference.java 中:

 @Override
public void onClick (DialogInterface dialog, int which)
{
super.onClick(dialog, which);
if(which == -1) {
**here I need that slist ArrayList**
}
}

最佳答案

在您的 ChannelsDialogPreference 中,将您的 slist arraylist 初始化为静态,并在您的 HiddenChannelsListAdapter 中更改 slist 的值:

在你的 HiddenChannelsListAdapter 中:

CheckBox checkbox = (CheckBox) convertView.findViewById(R.id.check_channel);
checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{

if ( isChecked ) {
if ( !slist.contains(i.get("id")) )
ChannelsDialogPreference.slist.add(i.get("id"));
} else {
for (int j=0;j<slist.size();j++) {
if ( slist.get(j) == i.get("id") ) {
ChannelsDialogPreference.slist.remove(j);
}
}
}
}
});

在您的 ChannelsDialogPreference 类中:

    public static ArrayList<String> slist = new ArrayList<String>();
@Override
public void onClick (DialogInterface dialog, int which)
{
super.onClick(dialog, which);
if(which == -1) {
//Now your can Use your Updated slist here.
}
}

希望对您有所帮助。

关于android - 在另一个类中获取变量形式的自定义适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15199366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com