0

リスト ビューでチェック ボックスをクリックしたときに、SD カードの特定のフォルダから特定のファイルを削除する方法。

  @Override
  public View getView(final int position, View convertView, ViewGroup parent) {
    View view = null;
    if (convertView == null) {
        LayoutInflater inflator = context.getLayoutInflater();
        view = inflator.inflate(R.layout.rowbuttonlayout, null);
        final ViewHolder viewHolder = new ViewHolder();
        viewHolder.text = (TextView) view.findViewById(R.id.label);
        viewHolder.checkbox = (CheckBox) view.findViewById(R.id.check);
        viewHolder.imageView=(ImageView) view.findViewById(R.id.imageView1);
        viewHolder.imageView.setImageResource(R.drawable.ic_launcher);
        viewHolder.checkbox.setChecked(true);

        viewHolder.checkbox.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Log.i("checkeddddd","checkedddddd2222222233333333444444");
            }
        });


        viewHolder.checkbox
        .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                Model element = (Model) viewHolder.checkbox
                .getTag();
                element.setSelected(buttonView.isChecked());


                InterectiveArrayAdapter.this.remove(InterectiveArrayAdapter.this.getItem(position));
                //adapter.notifyDataSetChanged();
            //  list.remove(position);

                    Toast.makeText(getContext(), "Checked", 
                    Toast.LENGTH_SHORT).show(); 

            }
        });
        view.setTag(viewHolder);
        viewHolder.checkbox.setTag(list.get(position));


    } else {
        view = convertView;
        ((ViewHolder) view.getTag()).checkbox.setTag(list.get(position));

        Log.i("checkeddddd","checkedddddd2222222233333333");
    }
    ViewHolder holder = (ViewHolder) view.getTag();
    holder.text.setText(list.get(position).getName());
    holder.checkbox.setChecked(list.get(position).isSelected());



    return view;
}

これは私のアダプタ クラスです。アダプタ クラスをカスタマイズし、アダプタ クラスにチェック ボックスを入れてリストビューに表示します。リストビューのデータは、sdcard のフォルダから取得されます。特定のチェック ボックスをオンにして、ボタンをクリックする必要があります。次に、その特定のファイルをsdcardのフォルダーから削除する必要があります。どうすればできますか?

4

2 に答える 2

0

get viewで、最初のparam位置をfinalとして配置します。次に、OnCheckListenerから取得できるようになります。次に、それをいくつかのリストに保存できます。そして、ボタンがクリックされたら、リストをループしてファイルを削除します。

于 2012-04-04T08:15:06.147 に答える
0

特定のファイルへのパスがある場合は、以下の method().:: を呼び出して削除できます。

public boolean deleteFile(File path) {
    // TODO Auto-generated method stub
    if( path.exists() ) {
        return(path.delete());
      }
}
于 2012-04-04T07:27:46.097 に答える