Android - pasar datos de activity a fragment

 
Vista:
sin imagen de perfil

pasar datos de activity a fragment

Publicado por daniel (1 intervención) el 09/05/2017 19:18:23
Estoy tratando de pasar un dato de una Activity a un Fragment, esto se debe pasar cuando presiono un botón. he probado con Bundle o directamente con get y se me pasa es un dato predefinido, pero al editar el campo de texto y unir el botón no se envía nada. Ya probé por medio de: 'Bundles', 'Directos', 'Interfaces'. Consta resaltar que el "Fragment" esta en un "Activity" diferente al otro "Activity". ¿Me podrian ayudar a tratar de solucionar esto?

Activity A:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class MenuActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
//Esta es la Actividad principal, desde aqui se llama al fragment.
DrawerLayout drawerLayout;
NavigationView navigationView;
TextView txtIndice;
String Phone = "111-11-111-1";
 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    //Aqui uso el boton flotante para abrir una clase.
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(view.getContext(), Comentario.class);
            startActivity(intent);
        }
    });
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawerLayout.setDrawerListener(toggle);
    toggle.syncState();
 
    navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}
Se llama el Fragment desde el Activity A:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@Override
public boolean onNavigationItemSelected(MenuItem item) {
 
    android.app.FragmentManager fm1 = getFragmentManager();
    android.app.FragmentManager fm2 = getFragmentManager();
    LinearLayout ly;
    LinearLayout ly2;
    switch (item.getItemId()) {
 
        case R.id.pizza:
            ly = (LinearLayout) findViewById(R.id.izquierda);
            ly.removeAllViews();
            fm1.beginTransaction().replace(R.id.izquierda, new FragmentPizza()).commit();
            //FreagmentPedido es a donde debe llegar el texto de la ActivityB
            //Aqui invoco al fragmet
            ly2 = (LinearLayout) findViewById(R.id.derecha);
            ly2.removeAllViews();
            fm2.beginTransaction().replace(R.id.derecha, new FragmentPedido()).commit();
 
            drawerLayout.closeDrawer(GravityCompat.START);
            return true;
         }
     return false;
     }
 }
Activity B:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Comentario  extends AppCompatActivity  {
String datoFragment;
EditText comentario;
Button Enviar;
 
 
 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.comentario_flotante);
    comentario = (EditText)findViewById(R.id.Comen);
    Enviar = (Button)findViewById(R.id.enviar_comentario);
    Enviar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
 
         }
     });
  }
}
Fragment:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class FragmentPedido extends Fragment implements View.OnClickListener {
 
View myview;
Button test1;
TextView recibirComentario;
String recibeDato;
 
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    myview = inflater.inflate(R.layout.activity_fragment_pedido, container, false);
    test1 = (Button) myview.findViewById(R.id.pedir);
    recibirComentario = (TextView) myview.findViewById(R.id.recibe_comentario);
    return myview;
}
 
@Override
public void onClick(View v) {
    FragmentManager fm1 = getFragmentManager();
    switch (v.getId()) {
        case R.id.pedir:
 
        }
   }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder