【发布时间】:2014-12-28 20:14:10
【问题描述】:
我已经阅读了很多关于如何将 FragmentDialog 与 Activity 进行通信的教程,但我似乎无法使它们适应我的项目。
我想做的很简单,当用户单击我的 FragmentDialog 上的正按钮时,我想在主要活动中调用一个方法。一个简单的想法,但执行起来让我很生气。
我的主要 Activity 使用选项卡式浏览,我的想法是搞砸了。
这是我主要活动的简短版本。
public class MainActivity extends ActionBarActivity implements ActionBar.TabListener {
//.....
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.menu_change_date){
DialogFragment dialog = new Dialog_Elegir_Mes();
dialog.show(getSupportFragmentManager(),"Elegir Mes");
}
//....
public void dosomething() {
}
}
对话框
public class Dialog_Elegir_Mes extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Build the dialog and set up the button click handlers
AlertDialog.Builder adb = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
final View v = inflater.inflate(R.layout.diag_select_month,null);
adb.setTitle("Elegir Mes");
adb.setView(v)
.setPositiveButton("Aceptar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//Here call dosomething();
}
})
.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Dialog_Elegir_Mes.this.getDialog().cancel();
}
});
return adb.create();
}
}
【问题讨论】:
标签: android android-fragments dialog