Como criar uma interface para obter informações de um fragmento para uma atividade do Android?
Nos últimos dias, eu tenho tentado desesperadamente construir um aplicativo Android com um fragmento simples (que eu uso duas vezes). Eu quero passar o conteúdo das caixas EditText dos fragmentos para uma nova atividade. Eu simplesmente não consigo descobrir como obter esses conteúdos dos fragmentos. O que eu tenho até agora é isto:
Eu tenho meuedit_text_fragment.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/my_edit_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="my hint" />
</LinearLayout>
e o correspondenteMyEditTextFragment.java
:
public class MyEditTextFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.edit_text_fragment, container, false);
return view;
}
}
Eu então uso este fragmento duas vezes na minhamain.xml
como isso:
<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="vertical">
<fragment
android:id="@+id/detailfragment_placeholder"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
class="com.example.fragmenttester5.MyEditTextFragment" />
<fragment
android:id="@+id/detailfragment_placeholder2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
class="com.example.fragmenttester5.MyEditTextFragment" />
<Button
android:id="@+id/submit_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit all of it" />
</LinearLayout>
e na minha MainActivity eu liguei o botão para uma nova atividade:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button submitButton = (Button) findViewById(R.id.submit_button);
submitButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v){
Intent intent = new Intent(MainActivity.this, OtherActivity.class);
intent.putExtra("result1", "the_result_from_the_first_editText");
intent.putExtra("result2", "the_result_from_the_second_editText");
startActivity(intent);
}
});
}
}
I pensar Agora preciso definir algum tipo de interface no fragmento, mas não consigo encontrar como. Eu li alguns exemplos e tutoriais (comoeste), mas eles não fazem sentido para mim. Eu não entendo o código dado e apenas não entendo como ajustá-lo para o meu caso de uso.
Então minha pergunta; Alguém pode me ajudar a obter o conteúdo do fragmento de dentro da atividade? Exemplos seriam muito bem-vindos, já que estou batendo com a cabeça contra a parede aqui ..