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

Краш - кастомный cursoradapter - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Приложение запускается из play, но не запускается с рабочего стола http://www.cyberforum.ru/android-dev/thread1808546.html
Добрый день всем! В чем может быть проблема, если приложение отлично запускается с google play, но не запускается с рабочего стола? В чем разница в запуске между кликом по иконке приложения и при нажатии кнопки открыть в маркете?
Программирование Android Как сделать canvas на заднем плане относительно всех других canvas-ов (слой с кругами) package com.ua.drawfigures; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; http://www.cyberforum.ru/android-dev/thread1808530.html
Программирование Android AlertDialog обработка нажатия PositiveButton
Можно сделать так чтобы при нажатии на PositiveButton диалог не закрывался? AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); /////.... builder.setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if...
Программирование Android Не до конца понимаю Dagger2
Доброго дня. Изучаю библиотеку Dagger2 для реализации Dependency Injection Кодил проект из del кода на форуме достаточно Что в итоге получилось: Класс Motor public class Motor { private int rpm;
Программирование Android Перенести базу на флешку и назад http://www.cyberforum.ru/android-dev/thread1808400.html
Гуру, дайте совет! Хочу дать юзеру возможность перекладывать базу (когда разрастется) из папки программы на большую флешку. Технически не сложно (переместить файл, переподключиться к базе), но хочу сделать перенос 1) системными средствами (у некоторых программ есть возможность в списке программ "перенести на флешку") 2) в настройки самой программы добавить И свою кнопку управления этим...
Программирование Android Антивирус AVG ругается на приложение перепакованное apktool Здравствуйте. Сегодня заметил, что если с помощью apktool распаковать и запаковать apk (без каких-либо изменений), антивирус AVG странным образом начинает на него ругаться, пробовал разные версии apklool, даже на разных машинах это проделывал. Я слабо верю, что apktool заражает чем-то файлы. Сам apktool как вирус не распознается, есть подозрение на мои ноуты. Буду благодарен если кто-то проверит... подробнее

Показать сообщение отдельно
leonardo666
1 / 1 / 0
Регистрация: 16.09.2016
Сообщений: 49
17.09.2016, 05:08  [ТС]     Краш - кастомный cursoradapter
да, конечно, просто сейчас не у компа, писал с телефона сейчас все добавлю.

Добавлено через 11 часов 23 минуты
код адаптера

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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQuery;
import android.database.sqlite.SQLiteQueryBuilder;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
 
import java.util.ArrayList;
 
/**
 * Created by filippov on 10.07.2016.
 */
public class CrdCursorAdapter extends SimpleCursorAdapter {
 
 
    private LayoutInflater inflater;
    private Cursor cursor;
 
    SQLiteDatabase database;
 
 
 
 
 
 
 
    public CrdCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) {
        super(context, layout, c, from, to, flags);
        inflater = LayoutInflater.from(context);
 
        this.cursor=c;
 
 
    }
 
 
    @Override
    public Object getItem(int position) {
        return position;
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
 
 
    static final class ViewHolder {
     
        TextView crdName, crdDtCrt, crdDtEd, crd_id, crdSys, crdNum,
                 crdBnk, crdValid, crdFio, crdCvs, crdPn, crdCmnt ;
 
        ImageView crdImg;
 
        int crdNamecolumn, crdCrtCrtcolumn, crdEdtCrtcolumn, crdIdCrtcolumn, crdSysCrtcolumn,
                crdNumcolumn, crdBnkcolumn, crdValidcolumn, crdFiocolumn, crdCvscolumn, crdPncolumn, crdCmntcolumn;
 
    }
 
    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        return super.newView(context, cursor, parent);
 
    }
 
    @Override
    public View getView(final int position, View convertView, final ViewGroup parent) {
        super.getView(position, convertView, parent);
 
        if (convertView == null) {
 
            convertView = inflater.inflate(R.layout.crd_item, parent, false);
 
            ViewHolder viewHolder = new ViewHolder();
 
            viewHolder.crdName = (TextView) convertView.findViewById(R.id.crdnm);
            viewHolder.crdDtCrt = (TextView) convertView.findViewById(R.id.crddtnew);
            viewHolder.crdDtEd = (TextView) convertView.findViewById(R.id.crddted);
            viewHolder.crd_id = (TextView) convertView.findViewById(R.id.crdid);
            viewHolder.crdSys = (TextView) convertView.findViewById(R.id.crdsys);
            viewHolder.crdNum = (TextView) convertView.findViewById(R.id.crdnum);
            viewHolder.crdBnk = (TextView) convertView.findViewById(R.id.crdbnk);
            viewHolder.crdValid = (TextView) convertView.findViewById(R.id.crdvalid);
            viewHolder.crdFio = (TextView) convertView.findViewById(R.id.crdusernm);
            viewHolder.crdCvs = (TextView) convertView.findViewById(R.id.crdcvs);
            viewHolder.crdPn = (TextView) convertView.findViewById(R.id.crdpn);
            viewHolder.crdCmnt = (TextView) convertView.findViewById(R.id.crdcmnt);
 
            viewHolder.crdImg = (ImageView) convertView.findViewById(R.id.crdlogoimage);
 
            viewHolder.crdNamecolumn = cursor.getColumnIndexOrThrow("name");
            viewHolder.crdCrtCrtcolumn = cursor.getColumnIndexOrThrow("newdttime");
            viewHolder.crdEdtCrtcolumn = cursor.getColumnIndexOrThrow("editdttime");
            viewHolder.crdIdCrtcolumn = cursor.getColumnIndexOrThrow("_id");
            viewHolder.crdSysCrtcolumn = cursor.getColumnIndexOrThrow("crdsys");
            viewHolder.crdNumcolumn = cursor.getColumnIndexOrThrow("crdnum");
            viewHolder.crdBnkcolumn = cursor.getColumnIndexOrThrow("crdbnk");
            viewHolder.crdValidcolumn = cursor.getColumnIndexOrThrow("crdvld");
            viewHolder.crdFiocolumn = cursor.getColumnIndexOrThrow("crdflname");
            viewHolder.crdCvscolumn = cursor.getColumnIndexOrThrow("crdky");
            viewHolder.crdPncolumn = cursor.getColumnIndexOrThrow("crdpn");
            viewHolder.crdCmntcolumn = cursor.getColumnIndexOrThrow("comment");
 
            convertView.setTag(viewHolder);
 
        }
 
            ViewHolder holder = (ViewHolder) convertView.getTag();
 
// ошибка ссылается на эту строчку !!!!!!!!!!!!!!!!!!!!!!!!!!!!
                cursor.moveToPosition(position);
 
                holder.crdName.setText(cursor.getString(holder.crdNamecolumn));
                holder.crdDtCrt.setText(cursor.getString(holder.crdCrtCrtcolumn));
                holder.crdDtEd.setText(cursor.getString(holder.crdEdtCrtcolumn));
                holder.crd_id.setText(cursor.getString(holder.crdIdCrtcolumn));
                holder.crdSys.setText(cursor.getString(holder.crdSysCrtcolumn));
                holder.crdNum.setText(cursor.getString(holder.crdNumcolumn));
                holder.crdBnk.setText(cursor.getString(holder.crdBnkcolumn));
                holder.crdValid.setText(cursor.getString(holder.crdValidcolumn));
                holder.crdFio.setText(cursor.getString(holder.crdFiocolumn));
                holder.crdCvs.setText(cursor.getString(holder.crdCvscolumn));
                holder.crdPn.setText(cursor.getString(holder.crdPncolumn));
                holder.crdCmnt.setText(cursor.getString(holder.crdCmntcolumn));
 
 
                if (holder.crdSys.getText().equals("VISA")) {
                    holder.crdImg.setImageResource(R.drawable.visa);
                } else if (holder.crdSys.getText().equals("MASTERCARD")) {
                    holder.crdImg.setImageResource(R.drawable.mstcrd);
                } else if (holder.crdSys.getText().equals("AMERICAN EXPRESS")) {
                    holder.crdImg.setImageResource(R.drawable.amexp);
                } else if (!holder.crdSys.getText().equals("AMERICAN EXPRESS") && !holder.crdSys.getText().equals("VISA") &&
                        !holder.crdSys.getText().equals("MASTERCARD")) {
 
                    holder.crdImg.setImageResource(R.drawable.card_bx);
                }
 
 
 
 
        return  convertView;
 
 
    }
 
 
 
 
 
}
код MainActivity

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
        dbHelper = new DBHelper(this);
        // mCursor = dbHelper.getAllItems();
 
        database = dbHelper.getWritableDatabase();
 
        cardlist = (ListView) findViewById(R.id.listV);
 
// слушатель едита для поиска карты
        final EditText edcrdsrch = (EditText) findViewById(R.id.searchEd);
        // edcrdsrch.setText("");
 
        crdcursor = database.query(DBHelper.TABLE_CRD, null, null, null, null, null, "newdttime DESC");
 
        //  crdcursor = database.query(DBHelper.TABLE_CRD,null, "name like ?", new String[]{"%"+"миог"+"%"},null, null, "newdttime DESC");
 
 
        String[] from = new String[]{DBHelper.KEY_NAME, DBHelper.KEY_CRDNUM, DBHelper.KEY_CRDKY,
                DBHelper.KEY_CRDPN, DBHelper.KEY_CRDVLD, DBHelper.KEY_CRDSYS, DBHelper.KEY_CRDBNK, DBHelper.KEY_CRDFLNM,
                DBHelper.KEY_COMMENT, DBHelper.KEY_DTNW, DBHelper.KEY_DTED, DBHelper.KEY_ID};
 
 
        int[] to = new int[]{R.id.crdnm, R.id.crdnum, R.id.crdcvs, R.id.crdpn, R.id.crdvalid,
                R.id.crdsys, R.id.crdbnk, R.id.crdusernm, R.id.crdcmnt,
                R.id.crddtnew, R.id.crddted, R.id.crdid};
 
        // создаем адаптер и настраиваем список
 
        cardlist.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
 
        final CrdCursorAdapter crdscAdapter = new CrdCursorAdapter(this, R.layout.crd_item, crdcursor, from, to, 0);
 
 
//листвью
        cardlist.setAdapter(crdscAdapter);
 
 
 
 
 
 
        edcrdsrch.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {
 
 
 
            }
 
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
 
 
            }
 
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
 
               crdscAdapter.getFilter().filter(s.toString());
 
 
 
 
            }
 
        });
 
 
        // устанавливаем провайдер фильтрации
        crdscAdapter.setFilterQueryProvider(new FilterQueryProvider() {
            @Override
            public Cursor runQuery(CharSequence constraint) {
 
 
 
                if (constraint == null || constraint.length() == 0 && !crdcursor.isClosed()) {
 
                    return
 
                            database.query("mycrd", null, null, null, null, null, "newdttime DESC");
 
 
 
                } else {
 
 
                    return
                            database.query("mycrd", null, "name like ?", new String[]{"%"+constraint.toString()+"%"},null, null,
                                    "newdttime DESC");
 
 
                }
 
 
            }
 Комментарий модератора 
используйте теги

Вот если передаю это в кастомный адаптер CrdCursorAdapter то при работе провайдера фильтрации
ошибка (исключение) "Attempting to access a closed CursorWindow.Most probable cause: cursor is deactivated prior to calling this method".


И все тупик.

Адаптер сделал специально что бы отображать логотипы в соотвествии с названиями платежных систем


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