0

電話番号をクリックして、リストの一番下の位置に電話番号の配列を表示するリストビューのアイテムを送信しようとしています。

私の 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 クラスは、ブール値と 2 つの文字列を持つ電話番号のクラスです。

NumberListClass は ArrayList を拡張し、いくつかのメソッドがありますが、私の問題には関係ありません。パブリック クラス NumberListClass は 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;}

助けてください!

4

0 に答える 0