android更改listview项的位置

时间:2012-08-14 02:47:37

标签: android listview position

我正在尝试将列表视图的项目发送到列表的最低位置,只需点击一下电话号码即可显示一组电话号码。

我的main.xml有listview加上一些buttoms,而R.layout.numberlayout有行的布局,有一个CheckBox和2个TextViews(heregoesthenumber和heregoestheid)。

我正在尝试使用我的ListNumberAdapter来定义一个OnClickListener到TextView heregoesthenumber所以每次你点击数字对列表的底部的数字。我尝试使用tvn.setOnClickListener,创建一个与单击它的完全相同的新数字并删除原始数字,但ListView的Checkbox失去了它的

主要活动加载数字: my_Adapter = new ListNumberAdapter(this,R.layout.numberlayout,numberList);     numberView.setAdapter(my_Adapter); }

我的NumberItem类是电话号码的类,带有布尔值和两个字符串。

NumberListClass扩展了ArrayList,它有几个方法,与我的问题不相关 public class NumberListClass extends ArrayList。

这是我的主适配器:

public class ListNumberAdapter extends ArrayAdapter {

private NumberListClass numeros;
private Context context;
public ListNumberAdapter(Context contexto, int textViewResourceId,
        NumberListClass listaNumeros) {
    super(contexto, textViewResourceId, listaNumeros);
    this.numeros=listaNumeros;
    this.context=contexto;
}           
@Override
public View getView(final int position, View convertview, ViewGroup parent){
    View v = convertview;
    if (v == null){
        LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         v = vi.inflate(R.layout.numberlayout, null);               
         }      
    final NumberItem numberI = this.numeros.get(position);
    if (numberI != null){
        final CheckBox rb = (CheckBox) v.findViewById(R.id.checkBox);
        TextView tvn=(TextView) v.findViewById(R.id.hereGoesTheNumber);
        TextView tvID=(TextView) v.findViewById(R.id.hereGoesTheId);
        if (rb !=null){rb.setChecked(numberI.getStatus());  }
        if (tvn!=null){ tvn.setText(numberI.getNumber()+numberI.getStatus());}
        if (tvID!=null){tvID.setText(""+numberI.getIfSelected());}                                                                                                              

        rb.setOnCheckedChangeListener(new OnCheckedChangeListener(){
            @Override
            public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
                numberI.changeStatus();
                notifyDataSetChanged();
                buttonView.refreshDrawableState();
            }           
        } 
        );
        tvn.setOnClickListener(new OnClickListener (){

            @Override
            public void onClick(View v) {
            // WHAT CAN I DO HERE???                    
            }           
        });
    }
    return v;}

请你的帮助!

0 个答案:

没有答案