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

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

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

Image in GridView - Android

04.10.2012, 00:07. Просмотров 1994. Ответов 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();
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2012, 00:07     Image in GridView
Посмотрите здесь:

GridView Android
GridView и ViewPager Android
Android GridView на весь экран
Реализация custom GridView Android
Android GridView и обрабочик
Работа с GridView Android
Android GridView в фокусе
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.10.2012, 00:51     Image in GridView #2
mAdapter.setItem(arg2);
grid.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
04.10.2012, 17:14  [ТС]     Image in GridView #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();
        
    }
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.10.2012, 17:21     Image in GridView #4
ну подебагайте.
или хотяб проект выложите.
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
04.10.2012, 18:39  [ТС]     Image in GridView #5
Код вверху и есть весь проект)))
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.10.2012, 18:46     Image in GridView #6
не, это только код. не хочу тратить время на создание проекта, классов, картинок.
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
04.10.2012, 19:09  [ТС]     Image in GridView #7
Вот проект
Вложения
Тип файла: rar ArtPuzzle.rar (3.07 Мб, 16 просмотров)
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
05.10.2012, 14:58  [ТС]     Image in GridView #8
V0v1k, скинул проэкт
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.10.2012, 23:17     Image in GridView #9
сегодня посмотрю, чуть позже.

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

в коде с первого поста нету setOnItemClickListener, а в коде с проекта SelectedListener используется.
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
05.10.2012, 23:24  [ТС]     Image in GridView #10
Я изменил т.к. думал, что селектед не фурычит, хотя и клик тоже не работает, если у вас работает не могли бы вы код клика скинуть? просто м.б. я где-то затупил...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.10.2012, 23:26     Image in GridView #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);
    }
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2012, 23:36     Image in GridView
Еще ссылки по теме:

Android NavigationView с GridView
Android Не перерисовывается GridView
Не заполняется gridview Android
Android Обновление gridView
Android Разметка GridView

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

Или воспользуйтесь поиском по форуму:
DanteNick
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 57
05.10.2012, 23:36  [ТС]     Image in GridView #12
Урааааа! Спасибо большое! Вышло!
У меня была ошибка в том, что в гриде был установлен онкликлистнер, а и имлемент ониитемклик!
Yandex
Объявления
05.10.2012, 23:36     Image in GridView
Ответ Создать тему
Опции темы

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