2016-06-09 4 views
1

Это мой фрагмент диалога. ниже вы можете увидеть выбор строки, который сохранит результат после того, как я выберу из списка чисел из диалогового окна. Как я могу сохранить это значение в другой деятельности?Возвращаемое значение от DialogFragment до другой активности

final CharSequence[] items= {"1","2","3","4"}; 

String selection; 
@Override 
public Dialog onCreateDialog(Bundle savedInstanceState){ 



    AlertDialog.Builder builder= new AlertDialog.Builder(getActivity()); 
    builder.setTitle("CHOOSE YOUR ITEM TO DELETE").setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      switch (which){ 
       case 0: 
        selection=(String) items[which]; 
        break; 
       case 1: 
        selection=(String) items[which]; 
        break; 
       case 2: 
        selection=(String) items[which]; 
        break; 


      } 

     } 
    }).setPositiveButton("OK", new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      Toast.makeText(getActivity(),"Your item to delete is "+ selection,Toast.LENGTH_SHORT).show(); 

     } 




    }); 
    return builder.create(); 

}

}

ответ

0

Определение слушателя/обратного вызова и имеют другой Activity осуществлять и реагировать на выборов в этом DialogFragment. StackOverflow содержит много примеров реализации.

0

Определите открытый метод в Activity и variable, как показано ниже.

private String mString; 

public setString(String s) 
{ 
    this.mString = s; 
} 

И когда пользователь нажимает кнопку ПОЛУЧИТЬ активность и установить выбранную строку, как показано ниже:

((YourActivity)getActivity).setString(selectedString); 

Чем вы можете передать строку на другие виды деятельности с Bundle.

Если вы показываете это DialogFragment из многих мероприятий, вы можете определить Listener и реализовать свою деятельность.

public interface SelectionListener{ 
    void onStringSelected(String s); 
} 

((SelectionListener)getActivity).onStringSelected(selectedString); 
0

Для постоянной экономии: - Для постоянной экономии вашего значения среди мероприятий, которые вы можете использовать базу данных SQLite сказать. Для временной экономии: - 1. Для этого у вас есть опция глобального ArrayList и тем самым вы можете сохранить. 2.You может использовать функцию обратного вызова, как описано здесь, и это почти такая же проблема, как у вас есть Callback to a Fragment from a DialogFragment

вы можете увидеть эти пример также для получения более подробной информации http://www.kylebeal.com/blog/2011/11/android-datepickerdialog-and-the-dialogfragment/

Смежные вопросы