Как добавить / удалить элементы из списка с помощью пользовательского базового адаптера - PullRequest
0 голосов
/ 10 ноября 2011

У меня здесь есть базовый адаптер, основанный на том, что я видел в демонстрациях API. Я хочу динамически добавлять / удалять элементы из списка, в этом случае добавление из намерения, вызванного кнопкой, и удаление от щелчка по представлению изображения в просмотре списка. И в этом случае я буду добавлять / удалять элементы из DATA []. Я искал различные методы AddItem () и или Remove () на SO и Google, но на самом деле не придумал много для этой ситуации. Любая помощь будет отличной. Вот код:

public class myActivity extends Activity{
    private static final int CONTACT_PICKER_RESULT = 1001;  
    private static final String TAG = myActivity.class.getSimpleName();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ListView lv = (ListView)findViewById(R.id.listView1);
        lv.setAdapter(new myAdapter(this));     
        Button bAdd = (Button)findViewById(R.id.bAdd);
        bAdd.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
        ........xxxx....xxxx....
        }
public class myAdapter extends BaseAdapter{
        private LayoutInflater mInflater;

        public myAdapter(Context context) {
            mInflater = LayoutInflater.from(context);

        }


        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return DATA.length;
        }


        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return position;
        }


        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }


        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            ViewHolder holder;
            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.row,null);
                holder = new ViewHolder();
                holder.text = (TextView) convertView.findViewById(R.id.txtTitle);
                holder.icon = (ImageView) convertView.findViewById(R.id.imgIcon);
                convertView.setTag(holder);


            } else {
                // Get the ViewHolder back to get fast access to the TextView
                // and the ImageView.
                holder = (ViewHolder) convertView.getTag();
            }
            holder.text.setText(DATA[position]);
            holder.icon.setImageResource(android.R.drawable.ic_delete);

            return convertView;
        }



        }


    static class ViewHolder {
        TextView text;
        ImageView icon;
    }
//this will not be hard-coded, jsut included for clarity
private static final String[] DATA ={
        "one","two","three" };

1 Ответ

1 голос
/ 10 ноября 2011

Если все, что вам нужно, это добавить / удалить элементы из массива DATA [], то почему бы просто не заменить массив простым List, реализованным, например, ArrayList.

Это позволит вам написать обработчики щелчков для вашего адаптера, которые будут добавлять / удалять элементы из списка по мере необходимости.

...