Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
DanteNick
1 / 1 / 2
Регистрация: 26.07.2012
Сообщений: 57
1

Image in GridView

04.10.2012, 00:07. Просмотров 2060. Ответов 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
Ответы с готовыми решениями:

GridView
Здравствуйте, подскажите где посмотреть пример для прокрутки грида в...

GridView и обрабочик
Всем привет,у меня такой вопрос ,я создал GridView и хочу сделать,чтоб при...

GridView и ViewPager
Всем привет. У меня есть GridView, в котором можно, конечно же, тыкать на...

NavigationView с GridView
Здравствуйте! Обучаюсь на курсах по Java и параллельно на Android. Задали...

GridView в фокусе
Как можно программно установить фокус на сетке на экране в 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 / 2
Регистрация: 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 / 2
Регистрация: 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 / 2
Регистрация: 26.07.2012
Сообщений: 57
04.10.2012, 19:09  [ТС] 7
Вот проект
0
Вложения
Тип файла: rar ArtPuzzle.rar (3.07 Мб, 17 просмотров)
DanteNick
1 / 1 / 2
Регистрация: 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 / 2
Регистрация: 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 / 2
Регистрация: 26.07.2012
Сообщений: 57
05.10.2012, 23:36  [ТС] 12
Урааааа! Спасибо большое! Вышло!
У меня была ошибка в том, что в гриде был установлен онкликлистнер, а и имлемент ониитемклик!
0
05.10.2012, 23:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2012, 23:36

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

Не перерисовывается GridView
Всем привет, возникла проблема с GridView. Использую ArrayAdapter, например там...

Работа с GridView
Здравствуйте. На данный момент мой уровень знаний программирования 1% из...


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

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

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