Как обновить вид списка в активности вкладок? - PullRequest
0 голосов
/ 13 января 2012

Привет, у меня есть вкладка, которая показывает список элементов (ListView).У этого listview есть кнопка в каждом ряду.Я обрабатываю эту кнопку clickListener в своем классе адаптера, который расширяет класс BaseAdapter.Теперь я хочу, чтобы, нажимая на эту кнопку, элемент должен быть удален из listview, а listview должен получить обновление.Как это сделать?

хорошо, я думаю, мой код может объяснить это

 public View getView(final int position,  View convertView, ViewGroup parent)
{
    ViewHolder holder;

    final ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);

    if(convertView==null) 
    {
             convertView = mInflater.inflate(R.layout.list_item, null);
             holder = new ViewHolder();
 //     holder.appSize = (TextView)convertView.findViewById(R.id.app_size);

              holder.appName = (TextView)convertView.findViewById(R.id.app_name);
              holder.app_icon = (ImageView)convertView.findViewById(R.id.app_icon);
              holder.button = (Button)convertView.findViewById(R.id.uninstall);
              if(kill_OR_uninstall)
              {

                       holder.button.setOnClickListener(new OnClickListener() {

                            public void onClick(View v) {

                       Intent intent = new Intent(Intent.ACTION_DELETE);
                       intent.setData(Uri.parse("package:"+package_names.get(position)));
                       context.startActivity(intent);



                     }
                    });
              }

              else
              {
                       holder.button.setText("End");
                       holder.button.setOnClickListener(new OnClickListener() {

                        public void onClick(View v) {
                        am.restartPackage(package_names.get(position));

                        }
                    });

              }

      convertView.setTag(holder);

    }

    else
    {       
                     holder = (ViewHolder) convertView.getTag();   
    }

     holder.appName.setText((String)app_details.get(position).get(APP_NAME));
     holder.app_icon.setImageDrawable((Drawable)app_details.get(position).get(APP_ICON));
  //   holder.appSize.setText(app_details.get(position).get(APP_SIZE)+ " KB");



     return convertView;

}

Ответы [ 3 ]

1 голос
/ 13 января 2012

В зависимости от положения строки, по которой был выполнен щелчок, удалите элемент из Collection, который поддерживает пример Adapter:

myArrayList.remove(position);

, затем уведомите список об изменении данных, используя:

adapter.notifyDataSetChanged();
1 голос
/ 13 января 2012

Вы можете сделать это. Сначала в вашем слушателе действия вашей кнопки, обновите свой адаптер представления списка (я имею в виду добавить / удалить элементы, которые вы не хотите от своего адаптера), и вам нужно вызвать urlistview.notifydatasetchange (true). это обновит ваш список

0 голосов
/ 13 января 2012

Ваш код может помочь в получении точного ответа, но на высоком уровне это то, что вам, возможно, потребуется, вам нужно удалить выбранную запись из списка значений, которые вы передаете при создании экземпляра вашего пользовательского класса адаптера. При первой попытке выбранная вами запись будет пустой, поэтому вам не нужно ничего удалять.

...