2017-10-10 5 views
1

Salut les gars j'ai un problème ....... J'ai créé l'activité de fragment en utilisant viewpager avec deux onglets, et créé listview avec deux textviews, je veux envoyer le aux textes de l'onglet un à l'onglet deux comme titre et description, j'ai envoyé avec succès la description mais n'ai pas envoyé le titre (juste je peux envoyer un seul texte) ai-je besoin (Getter()/Setter())? Comment faire un ??faire le listview recevoir deux textes que j'utilise fragment

mon fragment_one.java:

public class FragmentOne extends Fragment { 
SendMessage SM; 
ViewPager viewPager; 
@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View rootView = inflater.inflate(
      R.layout.fragment_one, container, false); 
    return rootView; 


} 


@Override 
public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    viewPager = (ViewPager)view.findViewById(R.id.viewPager); 
    Button btnPassData = (Button) view.findViewById(R.id.btnPassData); 

    final EditText inData = (EditText) view.findViewById(R.id.inMessage); 
    btnPassData.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      SM.sendData(inData.getText().toString().trim()); 
     } 
    }); 

} 

interface SendMessage { 
    void sendData(String message); 
} 

@Override 
public void onAttach(Context context) { 
    super.onAttach(context); 

    try { 
     SM = (SendMessage) getActivity(); 
    } catch (ClassCastException e) { 
     throw new ClassCastException("Error in retrieving data. Please try again"); 
    } 
} 

}

mon fragment_two.java:

public class FragmentTwo extends Fragment { 

ListView listView; 
ArrayList<String> arrayList = new ArrayList<>(); 
ArrayAdapter<String> adapter; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View rootView = inflater.inflate(
      R.layout.fragment_two, container, false); 
    return rootView; 


} 

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 

    listView = (ListView) view.findViewById(R.id.list_view); 
    adapter = new ArrayAdapter<String>(getActivity(), R.layout.single_item,R.id.tvdesc, arrayList); 

    listView.setAdapter(adapter); 
} 

protected void displayReceivedData(String message) { 
    arrayList.add(0,message); 
    adapter.notifyDataSetChanged(); 

} 

}

mon custom_items.xml:

<TextView 
    android:id="@+id/tvtitle" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dip" 
    android:layout_toLeftOf="@+id/tvdate" 
    android:layout_toRightOf="@+id/image" 
    android:maxLines="1" 
    android:text="title" 
    android:textColor="@android:color/black" 
    android:textSize="15dip" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/tvdesc" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/tvtitle" 
    android:layout_toRightOf="@+id/image" 
    android:ellipsize="end" 
    android:maxLines="3" 
    android:text="desc" 
    android:textColor="@android:color/black" 
    android:textSize="13dip" 
    android:lines="3" /> 

<TextView 
    android:id="@+id/tvdate" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="5dp" 
    android:layout_marginTop="5dip" 
    android:text="date" 
    android:textColor="@android:color/black" 
    android:textSize="12dip" /> 

note: J'ai posé cette question plusieurs fois mais personne ne m'a aidé, donc vous ne mettriez pas de lien vers une autre question si vous connaissez la réponse m'a aidé ou ignorer cette question.

+0

Envoyez-vous les données via votre activité ou vous essayez de passer entre les fragments? Ce dernier est dans le mauvais sens. Votre activité met-elle en œuvre l'interface? Fragment on devrait appeler l'interface dans votre activité, alors l'activité devrait passer l'info au second fragment. Publiez votre code d'activité. –

Répondre

0

rendre votre interface SendMessage comme celui-ci

interface SendMessage { 
    void sendData(String title,String message); 
} 

maintenant envoyer à la fois le titre et le message à un autre fragment en utilisant paquet. Je pense que cela vous sera utile