Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 62
1

Получение элемента listView в AlertDialog

05.11.2019, 11:20. Показов 1196. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день форумчане, подскажите как реализовать следующее событие.
Имеется listview, который состоит из нескольких компонентов (3 textview), вопрос, как при нажатии на компонент в диалоговом окне (alertdialog) выводилось значение конкретного textview, например последнего.
В интернете много примеров, но нужного ответа я не смог найти, вот мои коды, где ошибка, и как ее исправить

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
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
package com.example.telefonbase;
 
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
 
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
 
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
 
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.FilterQueryProvider;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
 
import java.io.IOException;
 
public class MainActivity extends AppCompatActivity {
 
    private TextView txtName;
    private TextView txtDolj;
    private TextView txtTelefon;
    private EditText searchTXT;
 
    ListView userList;
    DatabaseHelper databaseHelper;
    SQLiteDatabase db;
    Cursor userCursor;
    SimpleCursorAdapter userAdapter;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        databaseHelper = new DatabaseHelper(this);
        // создаем базу данных
        try {
            databaseHelper.updateDataBase();
        } catch (IOException ioe) {
            throw new Error("Не возможно инициализировать базу данных");
        }
 
        try {
            db = databaseHelper.getWritableDatabase();
        } catch (SQLException sqle) {
            throw sqle;
        }
 
        txtName = (TextView) findViewById(R.id.txtName);
        txtDolj = (TextView) findViewById(R.id.txtDolj);
        txtTelefon = (TextView) findViewById(R.id.txtTelefon);
        searchTXT = (EditText) findViewById(R.id.searchTXT);
        userList = (ListView) findViewById(R.id.userList);
 
 
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
 
    @Override
    public void onResume() {
        super.onResume();
        try{
            // открываем подключение
            db = databaseHelper.getWritableDatabase();
            //получаем данные из бд в виде курсора
            userCursor = db.rawQuery("select * from " + DatabaseHelper.TABLE, null);
            // определяем, какие столбцы из курсора будут выводиться в ListView
            String[] headers = new String[]{DatabaseHelper.COLUMN_NAME, DatabaseHelper.COLUMN_DOLJ, DatabaseHelper.COLUMN_TELEFON};
            // создаем адаптер, передаем в него курсор
            userAdapter = new SimpleCursorAdapter(this, R.layout.adapter_item,
                    userCursor, headers, new int[]{R.id.txtName, R.id.txtDolj, R.id.txtTelefon}, 0);
 
 
            // если в текстовом поле есть текст, выполняем фильтрацию
 
 
            if (!searchTXT.getText().toString().isEmpty())
                userAdapter.getFilter().filter(searchTXT.getText().toString());
 
            // установка слушателя изменения текста
 
            searchTXT.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
 
                }
 
                @Override
                public void onTextChanged(CharSequence s, int start, int count, int after) {
                    userAdapter.getFilter().filter(s.toString());
                }
 
                @Override
                public void afterTextChanged(Editable s) {
                    userAdapter.getFilter().filter(s.toString());
 
                }
            });
 
            // устанавливаем провайдер фильтрации
 
            userAdapter.setFilterQueryProvider(new FilterQueryProvider() {
                @Override
                public Cursor runQuery(CharSequence constraint) {
                    if (constraint == null || constraint.length() == 0) {
 
                        return db.rawQuery("select * from " + DatabaseHelper.TABLE, null);
                    } else {
                        return db.rawQuery("select * from " + DatabaseHelper.TABLE + " where " +
                                DatabaseHelper.COLUMN_NAME + " like ?", new String[]{"%" + constraint.toString() + "%"});
                    }
                }
            });
            userList.setAdapter(userAdapter);
        }
        catch (SQLException ex){}
 
        userList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Object s = userAdapter.getItem(position);
                String selectedPhone = s.toString();
                CustomDialogFragment dialog = new CustomDialogFragment();
                Bundle args = new Bundle();
                args.putString("phone", selectedPhone);
                dialog.setArguments(args);
                dialog.show(getSupportFragmentManager(), "custom");
            }
        });
    }
 
    @Override
    public void onDestroy(){
        super.onDestroy();
        // Закрываем подключение и курсор
        db.close();
        userCursor.close();
    }
 
 
 
}
CustomDialogFragment

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
package com.example.telefonbase;
 
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
 
 
public class CustomDialogFragment extends DialogFragment {
 
    @NonNull
    public Dialog onCreateDialog(Bundle savedInstanceState) {
 
        String phone = getArguments().getString("phone");
        AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
        return builder
                .setTitle("Мобильные телефоны")
                .setMessage(phone)
                .setPositiveButton("OK", null)
                .setNegativeButton("Отмена", null)
                .create();
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2019, 11:20
Ответы с готовыми решениями:

ListView+onCreateContextMenu->AlertDialog
Задача такая: по долгому нажатию на item в ListView вылетает контекстное меню где выбираем...

Listview, adapter получение информации из нажатого элемента списка
Есть список, который заполняется из базы данных. Мне нужно через контекстное меню удалить этот...

ListView+onCreateContextMenu->AlertDialog->dbSQLite
Прошу помощи, т.к. вроде все складно, но не работает, вероятно проблема в получении id для передачи...

Добавление и редактирование ListView через AlertDialog
Создаю элементы listview через alertdialog. Хочу по нажатию на элемент, редактировать его так же в...

13
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 311
05.11.2019, 11:44 2
1. Если посмотреть метод onItemClick интерфейса OnItemClickListener, то видно что второй параметр метода это View view . Это нажатый пункт в нашем ListView.
С помощью findViewById мы можем получить нужный TextView c интересующей информацией.

2. Передать данные во фрагмент можно с помощью Bundle и setArguments. Что у вас уже есть.
Данные во фрагменте можно получить так

Java
1
String strtext = getArguments().getString("phone");
Вроде все
0
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 62
05.11.2019, 12:06  [ТС] 3
Изменил обработчик, не выводит значение элемента

Java
1
2
3
4
5
6
7
8
9
10
11
12
userList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                TextView s = (TextView) view.findViewById(R.id.txtTelefon);
                String selectedPhone = s.toString();
                CustomDialogFragment dialog = new CustomDialogFragment();
                Bundle args = new Bundle();
                args.putString("phone", selectedPhone);
                dialog.setArguments(args);
                dialog.show(getSupportFragmentManager(), "custom");
            }
        });
Добавлено через 29 секунд
Вместо значения в диалоговом окне выводит непонятные символы
0
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 311
05.11.2019, 12:13 4
Вы вызываете метод toString у TextView. А вам надо взять текст из TextView.
так
Java
1
String a = tv.getText().toString();
0
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 62
05.11.2019, 13:28  [ТС] 5
Спасибо за помощь, заработало
0
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 62
06.11.2019, 11:25  [ТС] 6
Возник еще небольшой вопрос, после клика в dialog открывается справочник набора телефона, куда импортируется значение из textview, но когда в textview два телефона, они оба импортируются в справочник, как осуществить выбор одного из двух телефонов, которые прописаны в textview

вот коды

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
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
package com.example.telefonbase;
 
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Bundle;
 
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
 
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
 
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.FilterQueryProvider;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
 
import org.w3c.dom.Text;
 
import java.io.IOException;
 
public class MainActivity extends AppCompatActivity {
 
    private TextView txtName;
    private TextView txtDolj;
    private TextView txtTelefon;
    private EditText searchTXT;
 
    ListView userList;
    DatabaseHelper databaseHelper;
    SQLiteDatabase db;
    Cursor userCursor;
    SimpleCursorAdapter userAdapter;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        databaseHelper = new DatabaseHelper(this);
        // создаем базу данных
        try {
            databaseHelper.updateDataBase();
        } catch (IOException ioe) {
            throw new Error("Не возможно инициализировать базу данных");
        }
 
        try {
            db = databaseHelper.getWritableDatabase();
        } catch (SQLException sqle) {
            throw sqle;
        }
 
        txtName = (TextView) findViewById(R.id.txtName);
        txtDolj = (TextView) findViewById(R.id.txtDolj);
        txtTelefon = (TextView) findViewById(R.id.txtTelefon);
        searchTXT = (EditText) findViewById(R.id.searchTXT);
        userList = (ListView) findViewById(R.id.userList);
 
 
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
 
    @Override
    public void onResume() {
        super.onResume();
        try{
            // открываем подключение
            db = databaseHelper.getWritableDatabase();
            //получаем данные из бд в виде курсора
            userCursor = db.rawQuery("select * from " + DatabaseHelper.TABLE, null);
            // определяем, какие столбцы из курсора будут выводиться в ListView
            String[] headers = new String[]{DatabaseHelper.COLUMN_NAME, DatabaseHelper.COLUMN_DOLJ, DatabaseHelper.COLUMN_TELEFON};
            // создаем адаптер, передаем в него курсор
            userAdapter = new SimpleCursorAdapter(this, R.layout.adapter_item,
                    userCursor, headers, new int[]{R.id.txtName, R.id.txtDolj, R.id.txtTelefon}, 0);
 
 
            // если в текстовом поле есть текст, выполняем фильтрацию
 
 
            if (!searchTXT.getText().toString().isEmpty())
                userAdapter.getFilter().filter(searchTXT.getText().toString());
 
            // установка слушателя изменения текста
 
            searchTXT.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
 
                }
 
                @Override
                public void onTextChanged(CharSequence s, int start, int count, int after) {
                    userAdapter.getFilter().filter(s.toString());
                }
 
                @Override
                public void afterTextChanged(Editable s) {
                    userAdapter.getFilter().filter(s.toString());
 
                }
            });
 
            // устанавливаем провайдер фильтрации
 
            userAdapter.setFilterQueryProvider(new FilterQueryProvider() {
                @Override
                public Cursor runQuery(CharSequence constraint) {
                    if (constraint == null || constraint.length() == 0) {
 
                        return db.rawQuery("select * from " + DatabaseHelper.TABLE, null);
                    } else {
                        return db.rawQuery("select * from " + DatabaseHelper.TABLE + " where " +
                                DatabaseHelper.COLUMN_NAME + " like ?", new String[]{"%" + constraint.toString() + "%"});
                    }
                }
            });
            userList.setAdapter(userAdapter);
        }
        catch (SQLException ex){}
 
        userList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                TextView s = (TextView) view.findViewById(R.id.txtTelefon);
                String selectedPhone = s.getText().toString();
                CustomDialogFragment dialog = new CustomDialogFragment();
                Bundle args = new Bundle();
                args.putString("phone", selectedPhone);
                dialog.setArguments(args);
                dialog.show(getSupportFragmentManager(), "custom");
            }
        });
    }
 
    @Override
    public void onDestroy(){
        super.onDestroy();
        // Закрываем подключение и курсор
        db.close();
        userCursor.close();
    }
 
 
 
}

CustomDialogFragment

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
package com.example.telefonbase;
 
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
 
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
 
 
public class CustomDialogFragment extends DialogFragment {
 
    @NonNull
    public Dialog onCreateDialog(Bundle savedInstanceState) {
 
        final String phone = getArguments().getString("phone");
        AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
        return builder
                .setTitle("Мобильные телефоны")
                .setMessage(phone)
                .setPositiveButton("Вызвать", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Intent zvonok = new Intent(Intent.ACTION_DIAL);
                        zvonok.setData(Uri.parse("tel:" + phone));
                        startActivity(zvonok);
                    }
                })
                .create();
    }
}
0
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 311
06.11.2019, 12:15 7
Все зависит от вашей реализации
1. Вы можете в ячейку listview добавлять несколько TextView (скорее всего динамически их создавать), И на каждый вешать onClickListener. Тогда у вас есть разделение по какому телефону нажал пользователь. Примеры легко найти в интернете

2. Или оставить один TextView и использовать ClickableSpan который помогает отловить нажатие по заданному тексту внутри TextView

3. Еще вариант в CustomDialogFragment сделать телефоны как RadioButton и сначала пользователь должен выбрать телефон и только потом нажать вызвать
пример - http://developer.alexanderklim... button.php

и так далее
0
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 62
06.11.2019, 14:36  [ТС] 8
Попробовал сделать, но не отображает radiobutton

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
package com.example.telefonbase;
 
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
 
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
 
 
public class CustomDialogFragment extends DialogFragment {
 
    @NonNull
    public Dialog onCreateDialog(Bundle savedInstanceState) {
 
        final String phone = getArguments().getString("phone");
        AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
        return builder
                .setTitle("Мобильные телефоны")
                .setSingleChoiceItems(new String[]{phone}, -1, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int item) {
                        Intent zvonok = new Intent(Intent.ACTION_DIAL);
                        zvonok.setData(Uri.parse("tel:" + phone));
                        startActivity(zvonok);
                    }
                })
                .setMessage(phone)
//                .setPositiveButton("Вызвать", new DialogInterface.OnClickListener() {
//                    @Override
//                   public void onClick(DialogInterface dialogInterface, int i) {
//                        Intent zvonok = new Intent(Intent.ACTION_DIAL);
//                        zvonok.setData(Uri.parse("tel:" + phone));
//                        startActivity(zvonok);
//                    }
//                })
                .create();
    }
}
0
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 311
06.11.2019, 14:49 9
надо убрать

.setMessage(phone)
0
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 62
11.11.2019, 18:31  [ТС] 10
Спасибо получилось, отправляет на звонок

Хотелось бы еще скрыть item, значение в которых пусто, как это реализовать

MainActivity

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
userList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                TextView s = (TextView) view.findViewById(R.id.txtTelefon);
                TextView s1 = (TextView) view.findViewById(R.id.txtTelefon1);
                TextView s2 = (TextView) view.findViewById(R.id.txtTelefon2);
                String selectedPhone = s.getText().toString();
                String selectedPhone1 = s1.getText().toString();
                String selectedPhone2 = s2.getText().toString();
                CustomDialogFragment dialog = new CustomDialogFragment();
                Bundle args = new Bundle();
                args.putString("phone", selectedPhone);
                args.putString("phone1", selectedPhone1);
                args.putString("phone2", selectedPhone2);
                dialog.setArguments(args);
                dialog.show(getSupportFragmentManager(), "custom");
            }
        });
CustomDialogFragment

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
public class CustomDialogFragment extends DialogFragment {
 
    @NonNull
    public Dialog onCreateDialog(Bundle savedInstanceState) {
 
        final String phone = getArguments().getString("phone");
        final String phone1 = getArguments().getString("phone1");
        final String phone2 = getArguments().getString("phone2");
        AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
        return builder
                .setTitle("Мобильные телефоны")
                .setSingleChoiceItems(new String[]{phone, phone1, phone2}, -1, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int item) {
                        switch (item) {
                            case 0:
                                Intent zvonok = new Intent(Intent.ACTION_DIAL);
                                zvonok.setData(Uri.parse("tel:" + phone));
                                startActivity(zvonok);
                                break;
                            case 1:
                                Intent zvonok1 = new Intent(Intent.ACTION_DIAL);
                                zvonok1.setData(Uri.parse("tel:" + phone1));
                                startActivity(zvonok1);
                                break;
                            case 2:
                                Intent zvonok2 = new Intent(Intent.ACTION_DIAL);
                                zvonok2.setData(Uri.parse("tel:" + phone2));
                                startActivity(zvonok2);
                                break;
                        }
                    }
                })
                .create();
    }
}
0
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 311
11.11.2019, 19:05 11
если делать просто то создаете ArrayList и добавляете в него только не пустые строки и потом этот список конвертируете в Array
это полу-пример для вас
Java
1
2
3
4
5
6
7
List<Integer> al = new ArrayList<Integer>(); 
        al.add(10); 
        al.add(20); 
        al.add(30); 
        al.add(40); 
  
Object[] objects = al.toArray();
более современный вариант так
Java
1
String[] objects = Arrays.stream(new String[]{"This","", "will", "", "", "work"}).filter(x -> !x.isEmpty()).toArray(String[]::new);
0
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 62
12.11.2019, 15:16  [ТС] 12
Это можно организовать, но если ячейка в таблице пустая, как ее скрыть в alertdialog, при выводе item
0
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 311
12.11.2019, 16:07 13
не добавлять пустые строки в массив для setSingleChoiceItems метода
то что я вам и написал выше
0
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 62
12.11.2019, 18:24  [ТС] 14
Сделал как в говорили, только с непустыми строками, спасибо за информацию
0
12.11.2019, 18:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2019, 18:24
Помогаю со студенческими работами здесь

Получение элемента из ListView
Всем привет. Появилась проблема с получение элемента из listview. И так, начну с того, как у меня...

Получение значения выделенного элемента ListView
На форме есть ListView (LV1) и есть RichTextBox (Crit). Нужно по Click-у на элементе списка,...

Как осуществить прокрутку элемента управления в ListView до заданного элемента
Собственно вопрос в названии...Видел как это делают на VB если кто то может перевести с него могу...

Получение нажатых элементов listview
Добрый день! Есть listview с кастомным адаптером. В каждом элементе этого listview есть...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru