我正在尝试将列表视图的项目发送到列表的最低位置,只需点击一下电话号码即可显示一组电话号码。
我的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;}
请你的帮助!