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

–еб€та нужна помошь с јдаптером! - Android

¬осстановить пароль –егистраци€
 
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 42
19.10.2016, 14:51     –еб€та нужна помошь с јдаптером! #1
”тилизирую задачу: ≈сть некое активити на которой есть 3 кнопки и листвию со множественным выбором! «адача така€ чтоб проанализировать отмечена одна или несколько позиций отмечены! ƒело в том что при нажатии кнопки номер 1 и 2 провер€ю и если отмечена более одной позиции выводим сообщение что отмечено более одной записи если только одна то скажем так происходит действие 1 и 2! а при нажатии третей выполнить действие 3 которое выполн€етс€ как в случае отмечено одно или несколько!  ак определить сколько позиций отмечено все €сно и проблем с этим нет!

Java
1
2
3
4
5
    public int countChoiced() {
        int xResult;
        xResult = lvMaster.getCheckedItemCount();
        return xResult;
    }
ѕроблема в том, как написать адаптер чтоб он мог работать корректно как с единичным выбором так и множественным!

€ могу выложить то что € написал но по моему ерунда кака€ то получаетс€
Similar
Ёксперт
41792 / 34177 / 6122
–егистраци€: 12.04.2006
—ообщений: 57,940
19.10.2016, 14:51     –еб€та нужна помошь с јдаптером!
ѕосмотрите здесь:

Ќепон€тки с адаптером списка Android
Android ѕриложение с подключением GPS. Ќужна помошь
Ќачинающий , нужна подмога Android
Android Ќужна дороботка приложени€
Ќужна консультаци€ по андроид Android
ѕосле регистрации реклама в сообщени€х будет скрыта и будут доступны все возможности форума.
shavuz
56 / 62 / 10
–егистраци€: 29.01.2014
—ообщений: 299
19.10.2016, 17:16     –еб€та нужна помошь с јдаптером! #2
не очень пон€тна проблема. адаптер это элемент UI он должен всего лишь показывать вам лист и в случае изменений передавать его обратно. то есть, если € правельно пон€л при нажатии на кнопку 1, 2 или 3, нужно проверить что выделено, то есть в адаптере должен быть счетчик который вырастет на 1 при выборе или уменьшитс€ на 1 если выбор отменен. теперь в активити вы нажали на кнопку, в обработчике нажати€ на кнопку мы просим адаптер вернуть нам счетчик, что то вроде mAdapter.getSelectedItemsCounter() и когда мы его получаем мы провер€ем что в нем
иф каунтер > 1 делай раз, элс делай два
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 42
19.10.2016, 19:20  [“—]     –еб€та нужна помошь с јдаптером! #3
€ не знаю как передать јдаптеру результат каунтера
shavuz
56 / 62 / 10
–егистраци€: 29.01.2014
—ообщений: 299
19.10.2016, 19:40     –еб€та нужна помошь с јдаптером! #4
каунтер должен быть в адаптере. вы же в листе делает выбор?
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 42
21.10.2016, 10:56  [“—]     –еб€та нужна помошь с јдаптером! #5
shavuz, € понимаю что каунтер должен быть в адаптере но, как написать в адаптере каунтер если там нету Itema

¬ыкладываю все что наварганил:

ƒобавлено через 1 минуту
ItemMAdapter

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
import android.content.Context;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import java.util.ArrayList;
 
public class InventMAdapter extends BaseAdapter {
 
    dbclass dbHelper;
    Context ctx;
    LayoutInflater lInflater;
    ArrayList<InventMItem> objects;
    int previousposition;
 
    // обработчик дл€ чекбоксов
    CompoundButton.OnCheckedChangeListener myCheckChangList = new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView,
                                     boolean isChecked) {
            // мен€ем данные товара (в корзине или нет)
            getProduct((Integer) buttonView.getTag()).aBox = isChecked;
        }
    };
    private SparseBooleanArray mSelectedItemsIds;
 
    InventMAdapter(Context context, ArrayList<InventMItem> products) {
        ctx = context;
        objects = products;
        lInflater = (LayoutInflater) ctx
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mSelectedItemsIds = new SparseBooleanArray();
        previousposition = -1;
    }
 
    // кол-во элементов
    @Override
    public int getCount() {
        return objects.size();
    }
 
    // элемент по позиции
    @Override
    public Object getItem(int position) {
        return objects.get(position);
    }
 
    public Object getInventMCode() {
        return objects.get(previousposition).aInventMCode;
    }
 
    public Object getInventName() {
        return objects.get(previousposition).aInventName;
    }
 
    public boolean getvBox() {
        boolean xRsult;
        xRsult = false;
        if (previousposition != -1) {
            xRsult = objects.get(previousposition).aBox;
        }
        return xRsult;
    }
 
    // id по позиции
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    // пункт списка
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        long tUserCode;
        String tUserName;
        // используем созданные, но не используемые view
        View view = convertView;
        if (view == null) {
            view = lInflater.inflate(R.layout.list_item_for_archve_invmaster, parent, false);
        }
 
        InventMItem p = getProduct(position);
 
        ((TextView) view.findViewById(R.id.tInventName)).setText(p.aInventName);
        ((TextView) view.findViewById(R.id.tStartDT)).setText(p.aStartDT);
        ((TextView) view.findViewById(R.id.tFinishDT)).setText(p.aFinishDT);
        ((TextView) view.findViewById(R.id.tUserName)).setText(p.aUserName);
        final CheckBox cbBuy = (CheckBox) view.findViewById(R.id.cbBox);
 
        // присваиваем чекбоксу обработчик
        cbBuy.setOnCheckedChangeListener(myCheckChangList);
        // пишем позицию
        cbBuy.setTag(position);
        // заполн€ем данными из товаров: в корзине или нет
        cbBuy.setChecked(p.aBox);
 
        cbBuy.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
 
 
//                if (previousposition != -1) {
//                    objects.get(previousposition).aBox = !cbBuy.isChecked();
//                }
//                objects.get(position).aBox = cbBuy.isChecked();
//                previousposition = position;
//                notifyDataSetChanged();
                // getProduct(position);
//                toggleSelection(position);
            }
        });
        return view;
    }
 
    // товар по позиции
    InventMItem getProduct(int position) {
        return ((InventMItem) getItem(position));
    }
 
    // содержимое корзины
    ArrayList<InventMItem> getBox() {
        ArrayList<InventMItem> box = new ArrayList<InventMItem>();
        for (InventMItem p : objects) {
            // если в корзине
            if (p.aBox)
                box.add(p);
        }
        return box;
    }
 
    public void toggleSelection(int position) {
        selectView(position, !mSelectedItemsIds.get(position));
    }
 
    public void selectView(int position, boolean value) {
        if (value)
            mSelectedItemsIds.put(position, value);
        else
            mSelectedItemsIds.delete(position);
        notifyDataSetChanged();
    }
 
    private String getUserDesc(long tUserCode) {
        String xResult;
        xResult = dbHelper.GetUserDesc(tUserCode);
        return xResult;
    }
    
}
shavuz
56 / 62 / 10
–егистраци€: 29.01.2014
—ообщений: 299
21.10.2016, 10:58     –еб€та нужна помошь с јдаптером! #6
чекбоксы в адаптере, нажали -+1
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 42
21.10.2016, 11:02  [“—]     –еб€та нужна помошь с јдаптером! #7
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.os.Environment;
import android.util.SparseBooleanArray;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AbsListView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
 
public class MainActivity extends Activity implements View.OnClickListener {
 
    Button btnCreateNewInventOnOld;
    Button btnInventDetails;
    Button btnDelete;
    Button btnExport;
    Button btnFind;
    Button btnExit;
 
    EditText editFindText;
 
    long xInventMCode;
    long tInventMCode;
    String fInventMNum;
    String xOrder = "idncode desc";
    ListView lvMaster;
 
    long xUserCode;
    String xInventNum;
 
    String FILENAME;
    String DIR_SD;
    String FILENAME_SD;
    Cursor xInventM;
    Cursor xInventD;
    String xStartDT;
 
    int st = 0;
    int xChoiceCount;
 
    ArrayList<InventMItem> InventMItems = new ArrayList<InventMItem>();
    InventMAdapter InventMAdapter;
 
    dbclass dbHelper = new dbclass(this);
    DialogInterface.OnClickListener myClickListener = new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            switch (which) {
                // нейтральна€ кнопка
                case Dialog.BUTTON_NEUTRAL:
                    break;
            }
 
            switch (which) {
                // нейтральна€ кнопка
                case Dialog.BUTTON_POSITIVE:
                    if (st == 1) {
                        tInventMCode = (long) InventMAdapter.getInventMCode();
                        // Create New InventM
                        xInventMCode = (int) CreateNewInventM();
                        // Create new InventD record and copy from old InventD record
                        FillInventD(xInventMCode, tInventMCode);
                        st = 0;
                        finish();
                    }
                    if (st == 2) {
                        ClickbtnShowDetails();
                    }
 
                    if (st == 3) {
                        ClickbtnDel();
                    }
 
                    if (st == 4) {
                        ClickbtnExp();
                    }
 
                    if (st == 5) {
                        ClickbtnFindInvent();
                    }
 
                    if (st == 6) {
                        ClickbtnExit();
                    }
                    break;
            }
 
            switch (which) {
                // нейтральна€ кнопка
                case Dialog.BUTTON_NEGATIVE:
                    break;
            }
        }
    };
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        btnCreateNewInventOnOld = (Button) findViewById(R.id.btnCreateNewInventOnOld);
        btnInventDetails = (Button) findViewById(R.id.btnInventDetails);
        btnDelete = (Button) findViewById(R.id.btnDelete);
        btnExport = (Button) findViewById(R.id.btnExport);
        btnFind = (Button) findViewById(R.id.btnFind);
        btnExit = (Button) findViewById(R.id.btnExit);
        editFindText = (EditText) findViewById(R.id.editFindText);
        lvMaster = (ListView) findViewById(R.id.lvMaster);
 
        xUserCode = (getIntent().getLongExtra("UserCode", 0));
 
        btnCreateNewInventOnOld.setOnClickListener(this);
        btnInventDetails.setOnClickListener(this);
        btnDelete.setOnClickListener(this);
        btnExport.setOnClickListener(this);
        btnFind.setOnClickListener(this);
        btnExit.setOnClickListener(this);
 
 
        selectAllRecordInventM();
        fillMasterListView(InventMItems);
    }
 
    @Override
    public void onClick(View v) {
        xChoiceCount = countChoiced();
        switch (v.getId()) {
            case R.id.btnCreateNewInventOnOld:
                st = 1;
                if (xChoiceCount == 1) {
                   ClickbtnCreateNewInvent();
                }
                else
                    noCorrectRecordCount();
                break;
 
            case R.id.btnInventDetails:
                st = 2;
                ClickbtnShowDetails();
                break;
 
            case R.id.btnDelete:
                st = 3;
                ClickbtnDeleteInventM();
                break;
 
            case R.id.btnExport:
                st = 4;
                ClickbtnExportToTxt();
                break;
 
            case R.id.btnFind:
                st = 5;
                ClickbtnFindInvent();
                break;
 
            case R.id.btnExit:
                st = 6;
                ClickbtnCloseArchive();
                break;
        }
    }
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 42
21.10.2016, 11:03  [“—]     –еб€та нужна помошь с јдаптером! #8
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
    private void noCorrectRecordCount(){
        AlertDialog.Builder adb = new AlertDialog.Builder(this);
        // заголовок
        adb.setTitle(R.string.warning);
        // сообщение
        adb.setMessage(R.string.no_correct_record_count);
    }
 
    private void ClickbtnExportToTxt() {
        if (RecCountInventM()) {
            if (InventMAdapter.getvBox()) {
                showDialog(5);
            } else {
                showDialog(3);
            }
        } else {
            showDialog(2);
        }
    }
 
    private void ClickbtnDeleteInventM() {
        if (RecCountInventM()) {
            if (InventMAdapter.getvBox()) {
                showDialog(6);
            } else {
                showDialog(3);
            }
        } else {
            showDialog(2);
        }
    }
 
    private void ClickbtnCreateNewInvent() {
        int xActiv;
        xActiv = (int) GetActivInventM();
        if (xActiv == 0) {
            if (RecCountInventM()) {
                if (InventMAdapter.getvBox()) {
                    showDialog(4);
                } else {
                    showDialog(3);
                }
            } else {
                showDialog(2);
            }
        } else {
            showDialog(1);
        }
 
    }
 
    private void ClickbtnShowDetails() {
        if (RecCountInventM()) {
            if (InventMAdapter.getvBox()) {
                xInventMCode = (long) InventMAdapter.getInventMCode();
//                Intent intent = new Intent(this, InventDetailsActivity.class);
//                intent.putExtra("InventMCode", xInventMCode);
//                startActivity(intent);
            } else {
                showDialog(3);
            }
        } else {
            showDialog(2);
        }
    }
 
    private void ClickbtnFindInvent() {
        findInventbyDesc();
    }
 
    private void ClickbtnExit() {
        finish();
    }
 
    private void ClickbtnCloseArchive() {
        finish();
    }
 
    private void findInventbyDesc() {
        fInventMNum = editFindText.getText().toString();
 
        if (!fInventMNum.matches("")) {
            selectInventMbyInventName(fInventMNum);
        } else {
            selectAllRecordInventM();
        }
        fillMasterListView(InventMItems);
    }
 
    private void fillMasterListView(ArrayList<InventMItem> vInventMItems) {
        // создаем адаптер
        InventMAdapter = new InventMAdapter(this, vInventMItems);
        // настраиваем список
        lvMaster.setAdapter(InventMAdapter);
        lvMaster.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
        lvMaster.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
            @Override
            public void onItemCheckedStateChanged(ActionMode actionMode, int i, long l, boolean b) {
 
            }
 
            @Override
            public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
                return false;
            }
 
            @Override
            public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
                return false;
            }
 
            @Override
            public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
 
                SparseBooleanArray checked = lvMaster.getCheckedItemPositions();
                ArrayList<String> selectedItems = new ArrayList<String>();
                for (int i = 0; i < checked.size(); i++) {
                    // Item position in adapter
                    int position = checked.keyAt(i);
                    // Add sport if it is checked i.e.) == TRUE!
                    if (checked.valueAt(i))
                        selectedItems.add(String.valueOf(InventMAdapter.getItem(position)));
                }
 
                String[] outputStrArr = new String[selectedItems.size()];
 
                for (int i = 0; i < selectedItems.size(); i++) {
                    outputStrArr[i] = selectedItems.get(i);
                }
 
                // Create a bundle object
                Bundle b = new Bundle();
                b.putStringArray("selectedItems", outputStrArr);
 
                // Add the bundle to the intent.
//                intent.putExtras(b);
 
                // start the ResultActivity
//                startActivity(intent);
                return true;
            }
 
            @Override
            public void onDestroyActionMode(ActionMode actionMode) {
 
            }
        });
    }
 
    private ArrayList<InventMItem> selectAllRecordInventM() {
        Cursor cInventM;
        Context vcontext = getApplicationContext();
        cInventM = AllRecordInventM();
        InventMItems = new ArrayList<>();
        if (cInventM.getCount() > 0) {
            cInventM.moveToFirst();
            do {
                InventMItems.add(new InventMItem(cInventM.getLong(cInventM.getColumnIndex("idncode")),
                        cInventM.getString(cInventM.getColumnIndex("inventname")),
                        cInventM.getLong(cInventM.getColumnIndex("usercode")),
                        "",
                        cInventM.getString(cInventM.getColumnIndex("startdt")),
                        cInventM.getString(cInventM.getColumnIndex("finishdt")),
                        cInventM.getLong(cInventM.getColumnIndex("inventstatuscode")),
                        "",
                        false,
                        vcontext));
 
 
            } while (cInventM.moveToNext());
        }
        return InventMItems;
    }
 
    private ArrayList<InventMItem> selectInventMbyInventName(String vInventNum) {
        Cursor cInventM;
        Context vcontext = getApplicationContext();
        cInventM = ChoiceRecordInventM(vInventNum);
        InventMItems = new ArrayList<>();
        if (cInventM.getCount() > 0) {
            cInventM.moveToFirst();
            do {
                InventMItems.add(new InventMItem(cInventM.getLong(cInventM.getColumnIndex("idncode")),
                        cInventM.getString(cInventM.getColumnIndex("inventname")),
                        cInventM.getLong(cInventM.getColumnIndex("usercode")),
                        "",
                        cInventM.getString(cInventM.getColumnIndex("startdt")),
                        cInventM.getString(cInventM.getColumnIndex("finishdt")),
                        cInventM.getLong(cInventM.getColumnIndex("inventstatuscode")),
                        "",
                        false,
                        vcontext));
            } while (cInventM.moveToNext());
        }
        return InventMItems;
    }
 
    private Cursor AllRecordInventM() {
        Cursor xResult;
        xResult = dbHelper.AllRecordInventM();
        return xResult;
    }
 
    private Cursor ChoiceRecordInventM(String vInventNum) {
        Cursor xResult;
        xResult = dbHelper.ChoiceRecordInventM(vInventNum);
        return xResult;
    }
 
    private void FillInventD(long xInventMCode, long tInventMCode) {
        dbHelper.FillInventD(xInventMCode, tInventMCode);
    }
 
    private boolean RecCountInventM() {
        boolean xResult;
        xResult = dbHelper.RecCountInventM();
        return xResult;
    }
 
    private long CreateNewInventM() {
        long xResult;
        String vStartdt;
        SimpleDateFormat LDF = new SimpleDateFormat("yyyy_MM_dd_HH_mm");
        vStartdt = LDF.format(new Date(System.currentTimeMillis()));
        xInventNum = vStartdt;
        xResult = InsertNewInventMRecord((int) xUserCode, xInventNum);
        return xResult;
    }
 
    private long GetActivInventM() {
        long xResult;
        xResult = dbHelper.GetActivInventM();
        return xResult;
    }
 
    private long InsertNewInventMRecord(Integer vUserCode, String vInventName) {
        long xResult;
        xResult = dbHelper.InsertNewInventMRecord(vUserCode, vInventName);
        return xResult;
    }
 
    protected Dialog onCreateDialog(int id) {
        if (id < 7) {
            AlertDialog.Builder adb = new AlertDialog.Builder(this);
            // заголовок
            adb.setTitle(R.string.warning);
            // сообщение
            if (id == 1) {
                adb.setMessage(R.string.warning_text_1);
            }
            if (id == 2) {
                adb.setMessage(R.string.warning_text_2);
            }
            if (id == 3) {
                adb.setMessage(R.string.warning_text_3);
            }
            if (id == 4) {
                adb.setMessage(R.string.warning_text_4);
            }
            if (id == 5) {
                adb.setMessage(R.string.warning_text_5);
            }
            if (id == 6) {
                adb.setMessage(R.string.warning_text_6);
            }
            if (id < 4) {
                adb.setIcon(android.R.drawable.ic_dialog_info);
                // кнопка OK
                adb.setNeutralButton(R.string.warning_btn_ok, myClickListener);
            } else {
                adb.setIcon(android.R.drawable.ic_dialog_alert);
                // кнопка Yes
                adb.setPositiveButton(R.string.yes, myClickListener);
                // кнопка No
                adb.setNegativeButton(R.string.no, myClickListener);
            }
            // создаем диалог
            return adb.create();
        }
        return super.onCreateDialog(id);
    }
 
    private void ClickbtnDel() {
        xInventMCode = (long) InventMAdapter.getInventMCode();
        deleteInventDRecordbyInventMCode(xInventMCode);
        deleteInventMRecordbyIdncode(xInventMCode);
    }
 
    private void ClickbtnExp() {
        boolean xwfsd;
        xInventMCode = (long) InventMAdapter.getInventMCode();
        xInventNum = (String) InventMAdapter.getInventName();
        FillCurrentInventM(xInventMCode);
        FILENAME = xInventNum + ".txt";
        DIR_SD = "inventfiles";
        FILENAME_SD = xInventNum + ".txt";
        // Save File to SD-Card
        xwfsd = writeFileSD();
    }
 
    private void FillCurrentInventM(long vInventMCode) {
        xInventM = FilterInventMbyInventCode(vInventMCode);
        if (xInventM.moveToFirst()) {
            do {
                xInventNum = xInventM.getString(xInventM.getColumnIndex("inventname"));
                xStartDT = xInventM.getString(xInventM.getColumnIndex("startdt"));
            } while (xInventM.moveToNext());
        }
    }
 
    private Cursor FilterInventMbyInventCode(long vInventMCode) {
        Cursor xResult;
        xResult = dbHelper.FilterInventMbyInventCode(vInventMCode);
        return xResult;
    }
 
    boolean writeFileSD() {
        boolean xResult = false;
        String strrecord;
        String tzonadesc;
        BufferedWriter bw;
        // провер€ем доступность SD
        if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            Toast.makeText(this, "SD - бГСбГРбГ*бГРбГЧбГШ бГЫбГШбГ£бГђбГУбГЭбГЫбГФбГЪбГШбГР" + Environment.getExternalStorageState(), Toast.LENGTH_SHORT).show();
            return xResult;
        }
        // получаем путь к SD
        File sdPath = Environment.getExternalStorageDirectory();
        // добавл€ем свой каталог к пути
        sdPath = new File(sdPath.getAbsolutePath() + "/" + DIR_SD);
        // создаем каталог
        sdPath.mkdirs();
        // формируем объект File, который содержит путь к файлу
        File sdFile = new File(sdPath, FILENAME_SD);
        try {
            // открываем поток дл€ записи
            bw = new BufferedWriter(new FileWriter(sdFile));
            // пишем данные
            xInventD = FilterInvenDbyInventMCode(xInventMCode, xOrder);
            if (xInventD.moveToFirst()) {
                do {
                    tzonadesc = (xInventD.getString(xInventD.getColumnIndex("zonadesc")));
                    strrecord = xInventD.getString(xInventD.getColumnIndex("invoicenum")) +
                            "\t" + xInventD.getInt(xInventD.getColumnIndex("parcelqw")) +
                            "\t" + tzonadesc;
 
                    bw.write(strrecord);
                    bw.newLine();
                } while (xInventD.moveToNext());
            }
            // закрываем поток
            bw.close();
            Toast.makeText(this, "бГ§бГРбГШбГЪбГШ " + FILENAME_SD + "бГ©бГРбГђбГФбГ*бГШбГЪбГШбГР - SD-бГЦбГФ " + sdFile.getAbsolutePath(), Toast.LENGTH_SHORT).show();
            xResult = true;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return xResult;
    }
 
    private Cursor FilterInvenDbyInventMCode(long vInventMCode, String vOrder) {
        Cursor xResult;
        xResult = dbHelper.FilterInvenDbyInventMCode(vInventMCode, vOrder);
        return xResult;
    }
 
    private int deleteInventDRecordbyInventMCode(long vInventMCode) {
        int xResult;
        String strInventMCode;
        strInventMCode = String.valueOf(vInventMCode);
        xResult = dbHelper.deleteInventDRecordbyInventMCode(strInventMCode);
        return xResult;
    }
 
    private int deleteInventMRecordbyIdncode(long vInventMCode) {
        int xResult;
        String strInventMCode;
        strInventMCode = String.valueOf(vInventMCode);
        xResult = dbHelper.deleteInventMRecordbyIdncode(strInventMCode);
        return xResult;
    }
 
    @Override
    protected void onStart() {
        super.onStart();
        findInventbyDesc();
    }
 
    public void printChoiced() {
        SparseBooleanArray sba = lvMaster.getCheckedItemPositions();
        for (int i = 0; i < sba.size(); ++i) {
            int key = sba.keyAt(i);
            if (sba.get(key)) {
                System.out.print(lvMaster.getItemAtPosition(key) + "|");
            }
        }
        System.out.println();
    }
 
    public int countChoiced() {
        int xResult;
        xResult = lvMaster.getCheckedItemCount();
        return xResult;
    }
}
ћаин 2 кусками выложил разом не получилось
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 42
21.10.2016, 13:55  [“—]     –еб€та нужна помошь с јдаптером! #9
это визуалы

XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
 
    <TextView
        android:id="@+id/tInventName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.3"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#010199"
        android:gravity="center" />
 
    <TextView
        android:id="@+id/tStartDT"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.3"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#010199"
        android:gravity="center" />
 
    <TextView
        android:id="@+id/tFinishDT"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.3"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#010199"
        android:gravity="center" />
 
    <TextView
        android:id="@+id/tUserName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.25"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#010199"
        android:gravity="center" />
 
    <CheckBox
        android:id="@+id/cbBox"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.1"
        android:gravity="center|center_horizontal">
 
    </CheckBox>
</LinearLayout>
XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1">
    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
 
        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
 
            <Button
                android:text="@string/btnCreateNewInventOnOld"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/btnCreateNewInventOnOld" />
 
            <Button
                android:text="@string/btnInventDetails"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/btnInventDetails" />
 
            <Button
                android:text="@string/btnDelete"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/btnDelete" />
 
            <Button
                android:text="@string/btnExport"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/btnExport" />
 
            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="textPersonName"
                android:ems="10"
                android:id="@+id/editFindText" />
 
            <Button
                android:text="@string/btnFind"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/btnFind" />
 
            <Button
                android:text="@string/btnExit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/btnExit" />
        </TableRow>
    </TableLayout>
    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <Button
                android:id="@+id/column1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_margin="1dp"
                android:layout_weight="0.3"
                android:text="@string/btn_InventNum"
                android:textColor="#010199"/>
            <Button
                android:id="@+id/column2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_column="1"
                android:layout_margin="1dp"
                android:layout_weight="0.3"
                android:text="@string/btnInventStart"
                android:textColor="#010199"/>
            <Button
                android:id="@+id/column3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_column="2"
                android:layout_margin="1dp"
                android:layout_weight="0.3"
                android:text="@string/btnInventFinish"
                android:textColor="#010199"/>
            <Button
                android:id="@+id/column4"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_column="3"
                android:layout_margin="1dp"
                android:layout_weight="0.27"
                android:text="@string/btnUserName"
                android:textColor="#010199"/>
            <Button
                android:id="@+id/column5"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_column="4"
                android:layout_margin="1dp"
                android:layout_weight="0.1"
                android:text="@string/btnCheckBox"
                android:textColor="#010199"/>
        </TableRow>
        <ListView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/lvMaster"
            android:headerDividersEnabled="false" />
    </TableLayout>
</LinearLayout>
ƒобавлено через 1 минуту
shavuz, € понимаю но как это реализовать? !!! чекбоксы в адаптере, нажали -+1 !!!

ƒобавлено через 2 минуты
это мо€ перва€ попытка писать в јндроид студио € если честно немного по другому думаю как бы тебе сказать ... ну тут как бы не всегда пон€тно как поймать эвент!!! € привык писать по эвентам !!!

ƒобавлено через 2 часа 45 минут
в јдаптере есть процедура

Java
1
2
3
4
@Override
    public int getCount() {
        return objects.size();
    }
но проблема в том что она только растет! т.е. если € отметис 3 позиции а потом убрал 2 отметки она все равно считает 3
shavuz
56 / 62 / 10
–егистраци€: 29.01.2014
—ообщений: 299
23.10.2016, 08:14     –еб€та нужна помошь с јдаптером! #10
¬от это что?
Java
1
2
3
4
5
6
7
8
    // обработчик дл€ чекбоксов
    CompoundButton.OnCheckedChangeListener myCheckChangList = new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView,
                                     boolean isChecked) {
            // мен€ем данные товара (в корзине или нет)
            getProduct((Integer) buttonView.getTag()).aBox = isChecked;
        }
    };
это обработчик чекбокса, того на который вы нажали
по идее должно быть так, псевдокод:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
   satView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            if (isChecked){
                counter++;
            }
             else{
             counter --;
           }
 
        }
 
    });
таким образом мы знаем сколько чекбоксов отмечено
MoreAnswers
Ёксперт
37091 / 29110 / 5898
–егистраци€: 17.06.2006
—ообщений: 43,301
23.10.2016, 13:11     –еб€та нужна помошь с јдаптером!
≈ще ссылки по теме:

Android ќбновить ListView с кастомным адаптером
Android Ќужна иде€
Ќужна ли Ѕƒ? Android

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

»ли воспользуйтесь поиском по форуму:
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 42
23.10.2016, 13:11  [“—]     –еб€та нужна помошь с јдаптером! #11
спасибо уже разобралс€ и все получилось!
Yandex
ќбъ€влени€
23.10.2016, 13:11     –еб€та нужна помошь с јдаптером!
ќтвет —оздать тему
ќпции темы

“екущее врем€: 05:18. „асовой по€с GMT +3.
 ибер‘орум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
–ейтинг@Mail.ru