Форум программистов, компьютерный форум CyberForum.ru

Добавление пункта в ListView - Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Leks2
2 / 2 / 1
Регистрация: 14.11.2014
Сообщений: 105
10.01.2015, 14:24     Добавление пункта в ListView #1
Всем привет,подскажите пожалуйста, есть два активити с Listview в одном актививи список ListView с заполниным списком и мне нужно ,если по долгому тапу по пункту в списке , это пункт добавлялся во втором активити
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.01.2015, 16:31     Добавление пункта в ListView #2
К первому списку прикрутить AdapterView.OnItemLongClickListener через setOnItemLongClickListener.
Ну и в его методе onItemLongClick взять нужную информацию из элемента списка, запулить в источник данных для второго списка и намекнуть адаптеру второго списка, что данные-то изменились...
Leks2
2 / 2 / 1
Регистрация: 14.11.2014
Сообщений: 105
10.01.2015, 17:08  [ТС]     Добавление пункта в ListView #3
Armagedo, подскажите пожалуйста кодом ))
BigOblom
 Аватар для BigOblom
118 / 118 / 7
Регистрация: 30.06.2010
Сообщений: 435
10.01.2015, 19:12     Добавление пункта в ListView #4
Leks2, сам еще совсем новичек, но вот тебе начало) Дальше незнаю как. У меня стоит Android Studio.

Java
1
2
3
4
5
6
7
8
9
10
11
String[] myarray = new String[]{"Line 1","Line 2","Line 3","Line 4","Line 5"};
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myarray);
        ListView lv1 = (ListView)findViewById(R.id.listView);
        lv1.setAdapter(adapter);
        lv1.setOnItemLongClickListener( new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                //Тут пишете код получения значения из первого ListView и передачу второму
                return false;
            }
        });
Leks2
2 / 2 / 1
Регистрация: 14.11.2014
Сообщений: 105
10.01.2015, 21:15  [ТС]     Добавление пункта в ListView #5
BigOblom, да я и сам новичек ))) ,я только сделал по своему за место listview ,сделал gridview c адаптером
Java
1
2
3
GridView gridView = (GridView) view.findViewById(R.id.grid_view);
gridView.setAdapter(adp);
registerForContextMenu(gridView);
и присвоил ему ContextMenu
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
              ContextMenu.ContextMenuInfo menuInfo) {
           
         menu.add(Menu.NONE,CONTEXT_CREATE,Menu.NONE,  "Добавить");
 
    }
 
    @Override
    public boolean onContextItemSelected(MenuItem item) {
          AdapterView.AdapterContextMenuInfo info= (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
           int pos = info.position;
              switch(item.getItemId()) {
                  case CONTEXT_CREATE:
                  Log.i(TAG, "Позиция = " +pos);
                   return true;
        }
             return super.onContextItemSelected(item);
    }
нашел позицию по нажатию ContextMenu теперь хочу перекинуть их в другой адаптер

Добавлено через 28 минут
Может ,кто подскажет ,что делать дальше?
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.01.2015, 21:52     Добавление пункта в ListView #6
теперь хочу перекинуть их в другой адаптер
который находится в другой активити...
Осталось почитать, как передавать данные между активитями и "запускать" методы в другой активити
BigOblom
 Аватар для BigOblom
118 / 118 / 7
Регистрация: 30.06.2010
Сообщений: 435
10.01.2015, 21:58     Добавление пункта в ListView #7
Leks2, ну перекидывай через Intent, да лови на втором активити.
Первое активити, по нажатию на итем
Java
1
2
3
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("mylist", "тут значение которое перекидываешь");
startActivity(intent);
Второе активити, в oncreate принимаешь
Java
1
String MyString = getIntent().getExtras().getString("mylist");
Leks2
2 / 2 / 1
Регистрация: 14.11.2014
Сообщений: 105
10.01.2015, 22:04  [ТС]     Добавление пункта в ListView #8
Armagedo,ок

Добавлено через 2 минуты
BigOblom,
Цитата Сообщение от BigOblom Посмотреть сообщение
intent.putExtra("mylist", "тут значение которое перекидываешь")
"тут значение которое перекидываешь" это значит нужно переменную +pos перекидывать?
BigOblom
 Аватар для BigOblom
118 / 118 / 7
Регистрация: 30.06.2010
Сообщений: 435
10.01.2015, 22:06     Добавление пункта в ListView #9
Leks2, ну какие данные вам нужно перекинуть на второй ListView.
Leks2
2 / 2 / 1
Регистрация: 14.11.2014
Сообщений: 105
10.01.2015, 23:31  [ТС]     Добавление пункта в ListView #10
BigOblom, переменную pos,чтоб во втором активити появилась картинка под этой же позиции в gridview списке

Добавлено через 1 час 4 минуты
Теперь у меня во втором активити Ошибка The method getIntent() is undefined for the type FavoritApater и
Java
1
getIntent();
подчеркнуто красной линией
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,067
12.01.2015, 12:35     Добавление пункта в ListView #11
context.getIntent()
getActivity.getIntent()

Добавлено через 2 минуты
А зачем куда то передавать переменные, когда при вызове второй активности адаптер уже подгрузит обновленные данные? Или у вас разные для активностей данные?
Leks2
2 / 2 / 1
Регистрация: 14.11.2014
Сообщений: 105
12.01.2015, 15:57  [ТС]     Добавление пункта в ListView #12
Rube, спасибо за ответ,все равно подчеркнуто ,может потому что я вызывал в класс public class FavAdapater extends BaseAdapter и я сделал так
Java
1
Activity activity = (Activity) mContext;
потом уже
Java
1
2
Intent i = activity.getIntent();
 int pos = i.getExtras().getInt("id");
и тогда ошибка ушла,но теперь при добавлении Intent i = activity.getIntent(); int pos = i.getExtras().getInt("id"); у меня приложение стало закрываться

Добавлено через 3 минуты
я вообще хочу сделать при нажатии на ContextMenu можно было добавить картинку в другой список GridView тоесть в избранное ,как только это сделать не могу
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,067
13.01.2015, 08:41     Добавление пункта в ListView #13
и тогда ошибка ушла,но теперь при добавлении Intent i = activity.getIntent(); int pos = i.getExtras().getInt("id"); у меня приложение стало закрываться
Вот это я вообще не знаю что такое Activity activity = (Activity) mContext
поэтому скорее всего activity = null


Попробую объяснить, как я (стаж 6 мес.) выхожу из ситуации, когда в классе нельзя вызвать методы класса Activity:
При вызове этого класса из другого передаю в параметрах this, например:
Java
1
startActivity(new Intent(this, ActvitySettings.class));
А в принимающем классе ActvitySettings присваиваю его в конструкторе
Java
1
2
3
4
5
public class ActvitySettings {
    Context context;
    public ActvitySettings (Context context) {      
        this.context = context;
...
или просто в классе вызываю метод
Java
1
2
3
4
5
this.context = getApplicationContext()
// тогда работает
context.getIntent()
// или можно так
getActivity().getIntent()
Добавлено через 6 минут
Цитата Сообщение от Leks2 Посмотреть сообщение
я вообще хочу сделать при нажатии на ContextMenu можно было добавить картинку в другой список GridView тоесть в избранное ,как только это сделать не могу
Я так понимаю это однотипные списки? В таком случае у вас костыль какой то получается, я сперва тоже так делал. Потом научился фрагментам. Т.е. в одной активити разные экраны (или табы). В итоге получилось приложение с табами и с выдвигалкой слева.
Leks2
2 / 2 / 1
Регистрация: 14.11.2014
Сообщений: 105
13.01.2015, 16:01  [ТС]     Добавление пункта в ListView #14
[Rube, я вчера тоже думал об фрагментах,чтоб сделать все на одном активити ,незнаю еще что получится
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2015, 16:14     Добавление пункта в ListView
Еще ссылки по теме:

Android Открытие нужного пункта списка
Android Как обратиться к элементу (button) внутри пункта списка (ListView)
Добавление элементов в listview из БД Android
Android Анимация в Listview (добавление/удаление)
Загрузка данных из SQLite для каждого пункта ListView Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,067
13.01.2015, 16:14     Добавление пункта в ListView #15
Leks2, что там знать, неделя кодинга и гуглинга и все получится.
Yandex
Объявления
13.01.2015, 16:14     Добавление пункта в ListView
Ответ Создать тему
Опции темы

Текущее время: 11:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru