Subido por srta Mabel

fragmento

Anuncio
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
Descargar