getText un EditText dans un DialogFragment

J'ai un DialogFragment comme celui-ci

getText un EditText dans un DialogFragment

La boîte de Dialogue est appelée en cliquant sur le bouton "plus" dans le MainActivity ci-dessous qui est initialement vide. Quand je clique sur "continuer", j'ai créer un bouton et jusqu'à présent cela fonctionne. Je souhaite également que la chaîne que j'ai insérer dans l'EditText dans DialogFragment est indiqué sur le bouton je viens de créer. Mon problème est que je ne peux pas récupérer la chaîne, je suis entré dans l'EditText.

Voici le code:

MainActivity

public class MainActivity extends FragmentActivity implements IProjectDialFrag {
private ProjectDialogFragment projectDialFrag = new ProjectDialogFragment();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.action_settings:
//TODO
return true;
case R.id.filters:
Intent intent1 = new Intent(MainActivity.this, FiltersActivity.class);
startActivity(intent1);
return true;
case R.id.action_new:
return true;
case R.id.add_button:
Intent intent2 = new Intent(MainActivity.this, ButtonsActivity.class);
startActivity(intent2);
return true;
case R.id.add_project:
projectDialFrag.show(getFragmentManager(), "projectDialog");
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public void onDialogNegativeClick(DialogFragment dialog) {
return;
}
@Override
public void onDialogPositiveClick(DialogFragment dialog) { 
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.project_dialog_fragment, null);
EditText editText = (EditText) view.findViewById(R.id.project_name);
String projectName = editText.getText().toString();
Button projectButton = new Button(this);
projectButton.setText(projectName);
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.main_layout);
linearLayout.addView(projectButton);
}
}

DialogFrament

public class ProjectDialogFragment extends DialogFragment {
private IProjectDialFrag iProjDialFrag;
@SuppressLint("InflateParams")
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder createProjectAlert = new AlertDialog.Builder(getActivity());
createProjectAlert.setTitle("Create Project");
LayoutInflater inflater = getActivity().getLayoutInflater();
createProjectAlert.setView(inflater.inflate(R.layout.project_dialog_fragment, null))
.setPositiveButton(R.string.conti_nue, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
iProjDialFrag.onDialogPositiveClick(ProjectDialogFragment.this);
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
iProjDialFrag.onDialogNegativeClick(ProjectDialogFragment.this);
}
});
return createProjectAlert.create();
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
iProjDialFrag = (IProjectDialFrag) activity;
}
}

L'Interface

public interface IProjectDialFrag {
public void onDialogPositiveClick(DialogFragment dialog);
public void onDialogNegativeClick(DialogFragment dialog);
}

et le XML de mise en page pour référence:

DialogFragment disposition

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText 
android:id="@+id/project_name" 
android:inputType="text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="4dp"
android:hint="@string/hint_project_alert" />
</LinearLayout>

MainActivity disposition

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:orientation="horizontal"
android:id="@+id/main_layout">
</LinearLayout>

Où suis-je mal?

Pourquoi vous êtes Gonfler mise en onDialogPositiveClick(..)? Mieux pour gonfler dans votreProjectDialogFragment dans onCreateView(......) ou dans onCreateDialog(....)

OriginalL'auteur Riccardo | 2014-11-20