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

Картинка из SQLite в ListView - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android AppWidget: виджет не появляется на некоторых девайсах http://www.cyberforum.ru/android-dev/thread1546474.html
Здравствуйте. форумчане! Есть вопрос, связанный с нестабильным поведением приложения при создании инстанса AppWidget на рабочем столе. В приложении-виджете есть конфигурационное активити. После проведения настроек инстанса виджета и нажатия кнопки Done я попадаю на домашний экран и ожидаю появления виджета на рабочем столе. Все проходит на отлично на Samsung Galaxy Note 2 (GT-N7100) с Android...
Программирование Android Тип view Можно ли из кода узнать тип кликнутого view? например Button или TextView http://www.cyberforum.ru/android-dev/thread1546460.html
Можно ли обойти запрет на назначение onclicklistener для webview Программирование Android
Вопрос в заголовке
Подключение к удалённому источнику данных Программирование Android
Здравствуйте! Подскажите пожалуйста, какие есть варианты, или как обычно делают, или как сделать правильно, соединение мобильного приложения c удаленной CУБД MySQL, которая находится на веб хостинге. В данном случаи меня интересует сама архитектура. Вариант 1 - подключаться с мобильного приложения напрямую к удаленной БД. Но этот вариант мне не очень нравится, потому что при декомпиляции...
Программирование Android По какой причине приложение может не найти сохраненные файлы в своей папке Internal Storage после обновления? http://www.cyberforum.ru/android-dev/thread1546300.html
Здравствуйте, хотел обновить приложение, но после обновления оно не может найти сохраненные файлы в Internal Storage. В коде сохранения/загрузки ничего не менял. В названии пакета тоже. Только добавил несколько новых библиотек и рефакторил код. Так что не могу понять, от чего это происходит. Может у вас возникала подобная проблема? Спасибо.
Программирование Android LibGDX. TexturePacker. Не пакует текстуры Sync Project with Gradle Files нажимал. Помогите починить, пожалуйста. Для наглядности: package com.glasskeystudio.triangle_game.desktop; import com.badlogic.gdx.tools.texturepacker.TexturePacker; подробнее

Показать сообщение отдельно
snezhok11
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 27
07.10.2015, 21:12  [ТС]     Картинка из SQLite в ListView
Цитата Сообщение от YuraAAA Посмотреть сообщение
это id генерируемое sdk. Можно его использовать
Как его использовать?
Пробую подставлять в приложение из урока 136 ссылки вида R.drawable.ic_launcher и ic_launcher и ic_launcher.png и R.drawable.ic_launcher.png картинки не отображаются только по 2130837563.Тоесть получется эти ид можно узнать только при записи в бд из приложения?Тогда это мне не подходит.
Уже устал бороться с этими картинками,три дня гуглю,тем создано куча но решений негде нет.На нерускоязычных сайтах вроде есть,но я непонимаю там ничего.
Вот здесь http://forum.startandroid.ru/viewtopic.php?f=34&t=812 вроде парень отписался,что ему помог код
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 ViewBinder myVB = new ViewBinder() {
                public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
                        if (view.getId() == R.id.foto) {
                                ImageView iv = (ImageView) view;
                                try {
                                        Bitmap bm = BitmapFactory.decodeStream(getAssets().open(cursor.getString(columnIndex)));
                                        iv.setImageBitmap(bm);
                                } catch (IOException e) {
                                        e.printStackTrace();
                                }
                                return true;
                        }
                        return false;
                }
        };
Но там кратинки храняться в assets да и как его привязать к моему коду я незнаю.
Мой код
Кликните здесь для просмотра всего текста
Javascript
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
package com.metanit.eugene.sqldbapp;
 
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
 
import android.view.View;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.ListView;
import android.database.sqlite.SQLiteDatabase;
import android.database.Cursor;
import android.widget.SimpleCursorAdapter;
 
import java.io.IOException;
 
public class Main22Activity extends ActionBarActivity {
 
    ListView mList;
    TextView header;
    DatabaseHelper sqlHelper;
    SQLiteDatabase db;
    Cursor userCursor;
    SimpleCursorAdapter userAdapter;
    SimpleCursorAdapter listAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main22);
 
        header = (TextView)findViewById(R.id.header);
 
        mList = (ListView)findViewById(R.id.list);
        mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 
                Intent intent = new Intent(getApplicationContext(), UserActivity.class);
                intent.putExtra("id", id);
                startActivity(intent);
            }
        });
        sqlHelper = new DatabaseHelper(getApplicationContext());
    }
    @Override
    public void onResume() {
        super.onResume();
        // открываем подключение
        db = sqlHelper.getReadableDatabase();
 
        //получаем данные из бд
        userCursor =  db.rawQuery("select * from "+ DatabaseHelper.TABLE, null);
        String[] headers = new String[] {DatabaseHelper.COLUMN_NAME, DatabaseHelper.COLUMN_IMG};
 
        userAdapter = new SimpleCursorAdapter(this, R.layout.item,
                userCursor, headers, new int[]{R.id.text1, R.id.img}, 0);
        header.setText("Найдено элементов: " + String.valueOf(userCursor.getCount()));
        mList.setAdapter(userAdapter);
 
 
 
 
    }
 
 
 
 
    @Override
    public void onDestroy() {
            super.onDestroy();
            // Закрываем подключения
        db.close();
        userCursor.close();
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
 
        int id = item.getItemId();
 
        if (id == R.id.action_settings) {
 
            Intent intent = new Intent(getApplicationContext(), UserActivity.class);
            startActivity(intent);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
 
}


Добавлено через 2 часа 23 минуты
Наконец то нашел решение.
1 Создал класс
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public class MyViewBinde implements SimpleCursorAdapter.ViewBinder {
        public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
            if (view.getId() == R.id.img) {
                ImageView iv = (ImageView) view;
                try {
                    Bitmap bm = BitmapFactory.decodeStream(getAssets().open(cursor.getString(columnIndex)));
                    iv.setImageBitmap(bm);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return true;
            }
            return false;
        }
 
 
    }
2 Все картинки перекинул в папку assets
3 В SQLite написал ссылки вида - img.png,img2.gif,img3.jpg
4 Дописал рядом с SimpleCursorAdapter строку
Javascript
1
userAdapter.setViewBinder(new MyViewBinde());
И все заработало.
Полный код
Кликните здесь для просмотра всего текста
Javascript
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
package com.metanit.eugene.sqldbapp;
 
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
 
import android.view.View;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.ListView;
import android.database.sqlite.SQLiteDatabase;
import android.database.Cursor;
import android.widget.SimpleCursorAdapter;
 
import java.io.IOException;
 
public class Main22Activity extends ActionBarActivity {
 
    ListView mList;
    TextView header;
    DatabaseHelper sqlHelper;
    SQLiteDatabase db;
    Cursor userCursor;
    SimpleCursorAdapter userAdapter;
    SimpleCursorAdapter listAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main22);
 
        header = (TextView)findViewById(R.id.header);
 
        mList = (ListView)findViewById(R.id.list);
        mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 
                Intent intent = new Intent(getApplicationContext(), UserActivity.class);
                intent.putExtra("id", id);
                startActivity(intent);
            }
        });
        sqlHelper = new DatabaseHelper(getApplicationContext());
 
 
 
 
    }
    @Override
    public void onResume() {
        super.onResume();
        // открываем подключение
        db = sqlHelper.getReadableDatabase();
 
        //получаем данные из бд
        userCursor =  db.rawQuery("select * from "+ DatabaseHelper.TABLE, null);
        String[] headers = new String[] {DatabaseHelper.COLUMN_NAME, DatabaseHelper.COLUMN_IMG};
 
        userAdapter = new SimpleCursorAdapter(this, R.layout.item,
                userCursor, headers, new int[]{R.id.text1, R.id.img}, 0);
        header.setText("Найдено элементов: " + String.valueOf(userCursor.getCount()));
 
        userAdapter.setViewBinder(new MyViewBinde());
        mList.setAdapter(userAdapter);
 
    }
 
    public class MyViewBinde implements SimpleCursorAdapter.ViewBinder {
        public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
            if (view.getId() == R.id.img) {
                ImageView iv = (ImageView) view;
                try {
                    Bitmap bm = BitmapFactory.decodeStream(getAssets().open(cursor.getString(columnIndex)));
                    iv.setImageBitmap(bm);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return true;
            }
            return false;
        }
 
 
    }
 
 
    @Override
    public void onDestroy() {
            super.onDestroy();
            // Закрываем подключения
        db.close();
        userCursor.close();
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
 
        int id = item.getItemId();
 
        if (id == R.id.action_settings) {
 
            Intent intent = new Intent(getApplicationContext(), UserActivity.class);
            startActivity(intent);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
 
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru