Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.69
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
#1

Image in GridView - Программирование Android

04.10.2012, 00:07. Просмотров 2043. Ответов 11
Метки нет (Все метки)

Доброго времени суток! Столкнулся с проблемой,есть гридвью в который адаптированы изображения, необходимо чтобы при нажатии изображение менялось на другое, вроде все правильно написал но не работает. помогите пожалуйста.

Адаптер
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package com.example.artpuzzle;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
 
 
public class ImageAdapter extends BaseAdapter {
    private Context mContext;
    private static  Integer []  mImages =
        {
        
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright,
        android.R.drawable.divider_horizontal_bright
 
        };
 
    public ImageAdapter(Context context)
    {
        mContext=context;
    }
    
    public int getCount() {
        // TODO Auto-generated method stub
        return mImages.length;
    }
 
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return mImages[position];
        
    }
 
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return mImages[position];
    }
    public void setItem(int position)
    {
        mImages[position] = android.R.drawable.star_on;
        
    }
    
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ImageView view;
        if(convertView == null)
        {
            view = new ImageView(mContext);
            view.setLayoutParams(new GridView.LayoutParams(20,20));
            view.setScaleType(ImageView.ScaleType.CENTER_CROP);
            view.setPadding(2, 2, 2, 2);
        }
        else
        
            view = (ImageView)convertView;
        
        view.setImageResource(mImages[position]);
        return view;
    }
 
}

Главная активность
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.example.artpuzzle;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
 
public class Game extends Activity implements OnItemClickListener {
 
    ImageAdapter mAdapter;
   
    public GridView grid;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        setContentView(R.layout.game);
         grid = (GridView)findViewById(R.id.list);
        
        mAdapter = new ImageAdapter(getApplicationContext());
        grid.setAdapter(mAdapter);
        //grid.setOnItemSelectedListener(this);
        
        super.onCreate(savedInstanceState);
    }
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        // TODO Auto-generated method stub
         mAdapter.setItem(arg2);
         
         grid.setAdapter(mAdapter);
        // grid.invalidate();
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2012, 00:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Image in GridView (Программирование Android):

GridView - Программирование Android
Здравствуйте, подскажите где посмотреть пример для прокрутки грида в горизонтальном направлении, если не умещается все ячейки на экран. И...

Не заполняется gridview - Программирование Android
Не могу разобраться в чем причина. На телефоне запускаю, а гридвью пустой. По-сути задача в том, чтобы при нажатии открывалась новая...

Не перерисовывается GridView - Программирование Android
Всем привет, возникла проблема с GridView. Использую ArrayAdapter, например там у меня массив с 20 элементов. Эти 20 элементов отображаются...

GridView и ViewPager - Программирование Android
Всем привет. У меня есть GridView, в котором можно, конечно же, тыкать на пункты списка и открывать новую активити: например,...

GridView в фокусе - Программирование Android
Как можно программно установить фокус на сетке на экране в GridView например на позицию 0 ?

Разметка GridView - Программирование Android
Как можно сделать разметку GridView, чтобы одна верхняя ячейка была по всей ширине экрана, а остальные - ниже шли обычно таблицей??Как так...

11
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.10.2012, 00:51 #2
mAdapter.setItem(arg2);
grid.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
1
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
04.10.2012, 17:14  [ТС] #3
Ничего не поменялось

Java
1
2
3
4
5
6
7
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        // TODO Auto-generated method stub
        mAdapter.setItem(arg2);
        
        mAdapter.notifyDataSetChanged();
        
    }
1
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.10.2012, 17:21 #4
ну подебагайте.
или хотяб проект выложите.
0
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
04.10.2012, 18:39  [ТС] #5
Код вверху и есть весь проект)))
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.10.2012, 18:46 #6
не, это только код. не хочу тратить время на создание проекта, классов, картинок.
0
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
04.10.2012, 19:09  [ТС] #7
Вот проект
0
Вложения
Тип файла: rar ArtPuzzle.rar (3.07 Мб, 16 просмотров)
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
05.10.2012, 14:58  [ТС] #8
V0v1k, скинул проэкт
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.10.2012, 23:17 #9
сегодня посмотрю, чуть позже.

Добавлено через 1 час 1 минуту
у меня все работает с OnItemClickListener.

в коде с первого поста нету setOnItemClickListener, а в коде с проекта SelectedListener используется.
0
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
05.10.2012, 23:24  [ТС] #10
Я изменил т.к. думал, что селектед не фурычит, хотя и клик тоже не работает, если у вас работает не могли бы вы код клика скинуть? просто м.б. я где-то затупил...
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.10.2012, 23:26 #11
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.example.artpuzzle;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.GridView;
 
public class Game extends Activity implements OnItemClickListener {
 
    ImageAdapter mAdapter;
 
    public GridView grid;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        setContentView(R.layout.game);
        grid = (GridView) findViewById(R.id.list);
 
        mAdapter = new ImageAdapter(getApplicationContext());
        grid.setAdapter(mAdapter);
        grid.setOnItemClickListener(this);
 
        super.onCreate(savedInstanceState);
    }
 
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        // TODO Auto-generated method stub
        mAdapter.setItem(arg2);
        mAdapter.notifyDataSetChanged();
        // grid.setAdapter(mAdapter);
    }
 
}
0
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
05.10.2012, 23:36  [ТС] #12
Урааааа! Спасибо большое! Вышло!
У меня была ошибка в том, что в гриде был установлен онкликлистнер, а и имлемент ониитемклик!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2012, 23:36
Привет! Вот еще темы с ответами:

NavigationView с GridView - Программирование Android
Здравствуйте! Обучаюсь на курсах по Java и параллельно на Android. Задали сделать простенькое приложенbt для Android, решил сделать...

Обновление gridView - Программирование Android
Все привет, как разрешить данную проблему: обновляю gridView, потом поток засыпает на несколько секунд, чтоб пользователь увидел...

Работа с GridView - Программирование Android
Здравствуйте. На данный момент мой уровень знаний программирования 1% из 100000. Учусь. 8( Подскажите пожалуйста вот у меня есть GridView и...

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru