У меня два вида деятельности. Я передаю список массивов из второго действия в первое действие. В первом действии преобразуйте список массивов в массив строк. теперь я хочу сохранить этот массив строк с общими предпочтениями, но я не могу этого сделать.
второй код активности для передачи списка массивов
Intent i = new Intent();
//Bundle extra = new Bundle();
//i.putStringArrayList("array",h);
i.putStringArrayListExtra("array", h);
//i.putExtras(extra);
setResult(RESULT_OK,i);
finish();
Код первой активности для получения этого результата
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode == 1){
if(resultCode == RESULT_OK){
// Toast.makeText(getApplicationContext(), "success", Toast.LENGTH_SHORT).show();
File imgFile = null;
Bundle extras = data.getExtras();
a= extras.getStringArrayList("array");
try{
al = new String[a.size()];
al = a.toArray(al);
//for(String ss : al)
for(int i = 0; i < al.length; i++){
imagepathb.append(al[i]).append(",");
}
}
sharedpreferences.edit().putString("imgpath",imagepathb.tostring()).commit(); catch(Exception e){
}
if(ab != null){
ab = sharedpreferences.getString("imgpath", ab);
Toast.makeText(getApplicationContext(), "This is ab image path : "+ ab, Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "This is null", Toast.LENGTH_LONG).show();
}
}
}
}
у меня проблемы с использованием этого кода, потому что, когда я пробую этот код, запуск выполнения только для первого синтаксиса, два других синтаксиса остаются такими, какие они есть, и Toast отображает нулевое значение. Также общие настройки не могут сохранить значение переменной String-Builder imagepathb
.
for(int i = 0; i < al.length; i++){
imagepathb.append(al[i]).append(",");
Toast.makeText(getApplicationContext(), "This is image path : "+ imagepathb, Toast.LENGTH_LONG).show();
sharedpreferences.edit().putString("imgpath",imagepathb.tostring()).commit();
}
я хочу сохранить этот массив строк в общих настройках, когда результат будет получен в onActivityResult
. Но я не знаю, как это работает для множественного синтаксиса в loop
. Любой может сохранить этот массив строк в общих настройках для меня. заранее спасибо.
imagepathb.append(al[i]).append(",");
в цикле for. и это второй синтаксисToast.makeText(getApplicationContext(), "This is image path : "+ imagepathb, Toast.LENGTH_LONG).show();
, когда я запускаю только первую переменную построителя строкimagepatb
, может хранить значение для tamperory, но тост не может отображать значениеimagepathb
- person mahesh   schedule 18.06.2015System.out.println(imagepathb);
илиToast with imagepathb
, всплывающее сообщение отображается идеально. но когда вы пытаетесь сохранить этот массив строк с общими предпочтениями, он отображает только тост, а переменная общего предпочтения остается нулевой (как есть). - person mahesh   schedule 18.06.2015sharedpreference
строку снаружи после цикла. - person Pankaj   schedule 18.06.2015sheredpreference.getString("imagepathb","")
, и сохраните ее вString ab
. После этого я добавляю split(;) вот такString[] array = ab.split(",");
и запускаю цикл for и отображаю весь путь к изображению. - person mahesh   schedule 18.06.2015