小编Ste*_* C.的帖子

滚动自定义ListView时,复选框值会更改


我拥有:带有Textviews和复选框的自定义列表视图.


问题:假设我的屏幕在时间上只显示6项列表,而其他项目则不可见.所以我检查了列表中的第一个元素(位置0处的项目).我向下滚动以查看我的所有列表,当我向上滚动第一个元素(位置0处的项目)时,正确选中了复选框.大!但是现在也有新项目被检查,例如位置8处的项目(因为当我滚动列表时(对于环形),它成为位置0的新项目.我的屏幕在时间上仅显示7个元素).它会被检查,但我从未检查过它!

问题:我怎么能避免这个问题?我不希望我没有单击的复选框更改其状态.
在我的适配器下面的listView和getView函数,我已经实现了setOnCheckedChangeListener:

public class NewQAAdapterSelectFriends extends BaseAdapter {
private LayoutInflater mInflater;
private Person[] data;


public NewQAAdapterSelectFriends(Context context) { 
    mInflater = LayoutInflater.from(context);
}

public void setData(Person[] data) {
    this.data = data;
}

@Override
public int getCount() {
    return data.length;
}

@Override
public Object getItem(int item) {
    return data[item];
}

@Override
public long getItemId(int position) {
    return position;
}



@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = …
Run Code Online (Sandbox Code Playgroud)

checkbox android listview

25
推荐指数
2
解决办法
1万
查看次数

将新属性添加到networkx中的边缘

我拥有:在networkx whit节点中导入的图形G和由gml文件加载的egdes.
问题:如何向选定边添加新属性E.
我想做什么:我想为图的特定边E添加新属性'type'.注意:此边缘E不存在属性"type".

我在互联网和这里阅读了很多解决方案,但这些解决方案中没有一个解决了我的问题.实际上我的代码是:

  G.edge[id_source][id_target]['type']= value
Run Code Online (Sandbox Code Playgroud)

但是如果我打印G的所有边缘,现在我有n + 1条边,G的所有旧边和新边p =(id_source,id_target,{'type'= value}).此外,旧边E(我想修改的那个)没有新属性'type'.

所以我的代码添加了一个新的边缘(我不想要).
我想更新旧的添加不存在的新属性.

谢谢您的帮助 !

编辑:已解决 感谢Aric和一些技巧我解决了我的问题:

  G.edge[id_source][id_target]['type']= value
Run Code Online (Sandbox Code Playgroud)

python attributes graph networkx

20
推荐指数
1
解决办法
1万
查看次数

Latex表多行和多列

我正在尝试在Latex中创建一个表但没有成功.我尝试了不同的解决方案,但没有人解决我的问题.我想创建一个如下图所示的表格:

在此输入图像描述

任何人都可以在乳胶中展示如何做到这一点吗?

latex multiple-columns multirow

14
推荐指数
1
解决办法
7万
查看次数

滚动我的自定义 ListView 时,复选框丢失了选中的值

我所拥有的:带有 Textviews 和复选框的自定义列表视图。
问题:如果我检查屏幕上显示的初始项目,然后滚动列表,当我返回列表顶部(向上滚动)时,它们的值会正确保存。但是,如果我滚动列表,例如我想检查列表的最后一个树复选框,那么如果我向上和向下滚动,它们将变为未选中状态....为什么?**
我在其他论坛中看到了针对同一问题的各种解决方案也在stackoverflow上,但问题仍然存在。
在我认为没问题的 getView 函数下面:

    @Override
      public View getView(final int position, View convertView, ViewGroup parent) {
    final ViewHolder viewHolder;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.item_select_friends, null);
        viewHolder=new ViewHolder();
        viewHolder.nameText=(TextView) convertView.findViewById(R.id.personName);
        viewHolder.surnameText=(TextView) convertView.findViewById(R.id.personSurname);
        viewHolder.contactImage=(ImageView) convertView.findViewById(R.id.personImage);
        viewHolder.checkBox=(CheckBox)convertView.findViewById(R.id.checkBox);

        convertView.setTag(viewHolder);

        viewHolder.nameText.setTag(viewHolder.nameText);
        viewHolder.nameText.setTag(viewHolder.surnameText);
        viewHolder.contactImage.setTag(data[position]);
        viewHolder.checkBox.setChecked(data[position].isCheck());  
        viewHolder.checkBox.setOnClickListener(new OnClickListener() {  

            public void onClick(View arg0) {  

                if(viewHolder.checkBox.isChecked()==true)   
                    data[position].setCheck(true);  
                else  
                    data[position].setCheck(false);  
            }  
        });
    }
    else{
        viewHolder = (ViewHolder) convertView.getTag();
    }

    viewHolder.nameText.setText(data[position].getName());
    viewHolder.surnameText.setText(data[position].getSurname());
    viewHolder.contactImage.setImageResource(data[position].getPhotoRes());
    viewHolder.contactImage.setScaleType(ScaleType.FIT_XY);
    viewHolder.checkBox.setChecked(data[position].isCheck());
    return convertView;
}
Run Code Online (Sandbox Code Playgroud)

已解决:我用这段代码解决了我的 getView 问题: …

checkbox android listview

5
推荐指数
1
解决办法
2912
查看次数