我正在尝试通过单击电话号码将显示电话号码数组的列表视图项目发送到列表的底部位置。
我的 main.xml 有 listview 和一些按钮,而 R.layout.numberlayout 有行的布局,带有一个 CheckBox 和 2 个 TextViews(heregoesthenumber 和 heregoestheid)。
我正在尝试在我的 ListNumberAdapter 上定义一个 OnClickListener 到 TextView heregoesthenumber 所以每次单击该数字时,该数字都会出现在列表的底部。我尝试使用 tvn.setOnClickListener 执行此操作,创建一个与单击它的数字完全相同的新数字并删除原始数字,但 ListView 的复选框丢失了它
主活动加载数字: my_Adapter = new ListNumberAdapter(this, R.layout.numberlayout, numberList); numberView.setAdapter(my_Adapter); }
我的 NumberItem 类是电话号码类,带有一个布尔值和两个字符串。
NumberListClass 扩展了 ArrayList,它有几个方法,与我的问题公共类 NumberListClass 扩展 ArrayList 无关。
这是我的主要适配器:
公共类 ListNumberAdapter 扩展 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;}
请您的帮助!