Nombre: Cinthya Galeas Pilozo Curso: 4/E Activity_detail.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <fragment android:id="@+id/fragment_detail" android:name="com.example.mymail.DetailFragment" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" tools:layout="@layout/fragment_detail" /> </LinearLayout> Activity_Main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <fragment android:id="@+id/fragment" android:name="com.example.mymail.DataFragment" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" tools:layout="@layout/fragment_data" /> </LinearLayout> Activity_Main.xml (land) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <fragment android:id="@+id/fragment" android:name="com.example.mymail.DataFragment" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" tools:layout="@layout/fragment_data" /> <fragment android:id="@+id/fragment_detail" android:name="com.example.mymail.DetailFragment" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" tools:layout="@layout/fragment_detail" /> </LinearLayout> Nombre: Cinthya Galeas Pilozo Curso: 4/E Activity_Main.xml (x large-land) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <fragment android:id="@+id/fragment" android:name="com.example.mymail.DataFragment" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="15" tools:layout="@layout/fragment_data" /> <fragment android:id="@+id/fragment_detail" android:name="com.example.mymail.DetailFragment" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="65" tools:layout="@layout/fragment_detail" /> </LinearLayout> Fragment_Data.xml <?xml version="1.0" encoding="utf-8"?> <FrameLayout 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" tools:context=".DataFragment" android:background="#DC489A"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/editText_data" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" android:text="Digita algo " android:textAppearance="@style/TextAppearance.AppCompat.Display3" /> <Button android:id="@+id/button_send" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Enviar" android:textAppearance="@style/TextAppearance.AppCompat.Display3" /> Nombre: Cinthya Galeas Pilozo Curso: 4/E </LinearLayout> </FrameLayout> Fragment_Detail.xml <?xml version="1.0" encoding="utf-8"?> <FrameLayout 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" tools:context=".DetailFragment"> <!-- TODO: Update blank fragment layout --> <TextView android:id="@+id/TextView_detail" android:layout_width="match_parent" android:layout_height="match_parent" android:text="@string/hello_blank_fragment" android:textAppearance="@style/TextAppearance.AppCompat.Display3" /> </FrameLayout> DataFragment.Java package com.example.mymail; import android.content.Context; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import import import import import import android.view.LayoutInflater; android.view.View; android.view.ViewGroup; android.widget.Button; android.widget.EditText; android.widget.Toast; /** * A simple {@link Fragment} subclass. * Use the {@link DataFragment#newInstance} factory method to * create an instance of this fragment. */ public class DataFragment extends Fragment { // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; // TODO: Rename and change types of parameters private String mParam1; private String mParam2; private EditText text; private Button button_send; private DataListener callback; public DataFragment() { Nombre: Cinthya Galeas Pilozo Curso: 4/E // Required empty public constructor } @Override public void onAttach(@NonNull Context context) { super.onAttach(context); try { callback = (DataListener)context; } catch (Exception E) { throw new ClassCastException(context.toString()+"Debes implementar DataListener"); } } /** * Use this factory method to create a new instance of * this fragment using the provided parameters. * * @param param1 Parameter 1. * @param param2 Parameter 2. * @return A new instance of fragment DataFragment. */ // TODO: Rename and change types and number of parameters public static DataFragment newInstance(String param1, String param2) { DataFragment fragment = new DataFragment(); Bundle args = new Bundle(); args.putString(ARG_PARAM1, param1); args.putString(ARG_PARAM2, param2); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view =inflater.inflate(R.layout.fragment_data, container, false); text = view.findViewById(R.id.editText_data); button_send = view.findViewById(R.id.button_send); button_send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getContext(),text.getText().toString(),Toast.LENGTH_LONG).show (); } }); Nombre: Cinthya Galeas Pilozo Curso: 4/E return view; } private void sendText(String text){ callback.sendData(text); } public interface DataListener{ void sendData(String text); } } DetailActivity.java package com.example.mymail; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class DetailActivity extends AppCompatActivity implements DataFragment.DataListener { private String text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detail); if (getIntent().getExtras() != null){ text = getIntent().getExtras().getString("text"); } DetailFragment detailFragment = (DetailFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_detail); detailFragment.renderText(text); } @Override public void sendData(String text) { } } DetailFragment.java package com.example.mymail; import android.os.Bundle; import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.text.BreakIterator; /** * A simple {@link Fragment} subclass. * Use the {@link DetailFragment#newInstance} factory method to * create an instance of this fragment. Nombre: Cinthya Galeas Pilozo Curso: 4/E */ public class DetailFragment extends Fragment { // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; // TODO: Rename and change types of parameters private String mParam1; private String mParam2; public DetailFragment() { // Required empty public constructor } /** * Use this factory method to create a new instance of * this fragment using the provided parameters. * * @param param1 Parameter 1. * @param param2 Parameter 2. * @return A new instance of fragment DetailFragment. */ // TODO: Rename and change types and number of parameters public static DetailFragment newInstance(String param1, String param2) { DetailFragment fragment = new DetailFragment(); Bundle args = new Bundle(); args.putString(ARG_PARAM1, param1); args.putString(ARG_PARAM2, param2); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_detail, container, false); } public void renderText(String text){ BreakIterator detail = null; detail.setText(text); } } MainActivity.java import android.content.Intent; import android.os.Bundle; Nombre: Cinthya Galeas Pilozo Curso: 4/E public class MainActivity extends AppCompatActivity implements DataFragment.DataListener { private boolean isMultiPanel; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setMultiPanel(); } @Override public void sendData(String text) { if (isMultiPanel) { DetailFragment detailFragment = (DetailFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_detail); detailFragment.renderText(text); } else{ Intent intent = new Intent(this, DetailActivity.class); intent.putExtra("text",text); startActivity(intent); } } public void setMultiPanel(){ isMultiPanel = (getSupportFragmentManager().findFragmentById(R.id.fragment_detail) != null); } } Captura Nombre: Cinthya Galeas Pilozo Curso: 4/E