Есть код, который передает отмеченные позиции в listView в другую активность:
public class MainActivity extends AppCompatActivity {
String[] names = { "voron", "milk", "food", "shit", "gg"};
TextView selection;
ListView textList;
Button btn;
String[] arr;
String test;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// получаем элемент TextView
selection = (TextView) findViewById(R.id.selection);
// получаем элемент ListView
textList = (ListView) findViewById(R.id.listView);
//Получаем эелемент Button
btn = (Button) findViewById(R.id.button);
// создаем адаптер
ArrayAdapter<String> adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_multiple_choice, names);
// устанавливаем для списка адаптер
textList.setAdapter(adapter);
// добвляем для списка слушатель
textList.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
selection.setText("");
SparseBooleanArray sp=textList.getCheckedItemPositions();
String selectedItems="";
for(int i=0;i < names.length;i++)
{
if(sp.get(i))
selectedItems+=names[i]+",";
}
// установка текста элемента TextView
selection.setText("Выбрано: " + selectedItems);
// выбранные позиции будут заноситься в checked:
// int cntChoice = textList.getCount();
// String checked = "";
String delt= ",";
// SparseBooleanArray sparseBooleanArray = textList.getCheckedItemPositions();
// for(int i = 0;i< cntChoice;i++){
// if(sparseBooleanArray.get(i)==true){
// checked+= textList.getItemAtPosition(i).toString()+" ";
// }
//
}
// Получение массива для поиска
arr = selectedItems.split(delt);
test = selectedItems;
}
});
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MainActivity.this, Main2Activity.class);
Search search = new Search(arr);
String start = search.print();
i.putExtra("start",test.toString());
startActivity(i);
}
});
}
}
При передаче test = "milk, food"
(Или др. отмеченные позиции) в интенте,
приложение вылетает. Почему при переходе на др активность приложение вылетает?
UPD
Я немного изменил передачу интента: i.putExtra("start",arr.toString());
- почему массив приобретает такое значение: String[2]@4598
p.s. Я понимаю, что код очень сильно захламлен ненужными переменными и закомментированным кодом, я понимаю, что это снижает его читабельность, извините.
У массива метод toString
возвращает его "дамп", тоесть тип, размер и хешкод. Чтобы передать коллекцию строк используйте putStringArrayExtra
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Буду кратокОдна из проблем в моем сокет приложении на ява решилось тем что я кодировку исходного файла поменял с UTF-8 на windows-1251
Необходимо передать на почту с помощью MimeMessage Arraylist, в котором находятся экземпляры класса, чтобы в письме выводились данные Arraylist в строку...
В интернете искал инфу по поводу этой библы, для java документации ноль (скорей всего я плохо искал)
Здравствуйте!, Изучаю java и хочу научится писать вебсервер, в интуите нашел леции, но что то пока трудновато, помогите пожалуйста разобартся...