SecondFragment
I have create a Tab Activity. I am getting null value in ArrayList while sending value from one Fragment to other Fragment. I am getting the value in second fragment but unable to setting it up ArrayList. i am using
RecyclerView
for showing the values in row.
import android.app.Application;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.jar.Attributes;
public class Registration_Details extends Fragment {
RecyclerView recyclerView;
ArrayList list;
List<String> list2;
MyAddapter myAddapter;
Context context;
Bundle bundle;
TextView textView,textView2,textView3;
String name, contact,email;
private Random mRandom = new Random();
private TextView memail,mphone,muser;
View rootView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayValueAdd();
}
private void ArrayValueAdd() {
Bundle bundle = this.getArguments();
if (bundle != null) {
name = bundle.getString("Name");
contact = bundle.getString("Contact");
email = bundle.getString("Email");
}
list = new ArrayList<String>(3);
for (int i = 0; i <= 5; i++) {
//Here unable to getting the value
list.add(name);
list.add(contact);
list.add(email);
//Getting the value in Log.e
Log.e(name, "This is my message");
}
}
@Override
public void onStart() {
super.onStart();
ArrayValueAdd();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.registration_details, container, false);
recyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this.getActivity());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
RelativeLayout relativeLayout = (RelativeLayout) rootView.findViewById(R.id.tv);
myAddapter = new MyAddapter(getActivity(), list, new OnMyItemClickListner() {
@Override
public void onItemClicked(int pos) {
}
}, new OndeleteItem() {
@Override
public void ondelete(int pos) {
Toast.makeText(getActivity(), String.valueOf(name), Toast.LENGTH_LONG).show();
myAddapter.notifyDataSetChanged();
}
}
);
recyclerView.setAdapter(myAddapter);
return rootView;
}
}
FirstFragment
import android.os.Bundle;
import android.service.carrier.CarrierMessagingService;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Registration_Tab extends Fragment {
EditText editTextName, editTextContact,editTextEmail;
View rootView;
Button submitButton;
String name,contact,email;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.registration_tab, container, false);
editTextName = (EditText)rootView.findViewById(R.id.editTextName);
editTextContact = (EditText)rootView.findViewById(R.id.editTextContact);
editTextEmail = (EditText)rootView.findViewById(R.id.editTextEmail);
submitButton = (Button) rootView.findViewById(R.id.button);
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
name = editTextName.getText().toString();
contact = editTextContact.getText().toString();
email = editTextEmail.getText().toString();
Bundle bundle=new Bundle();
bundle.putString("Name",name);
bundle.putString("Contact",contact);
bundle.putString("Email",email);
FragmentTransaction transection=getFragmentManager().beginTransaction();
Registration_Details registration_details=new Registration_Details();
registration_details.setArguments(bundle); //data being send to SecondFragment
transection.replace(R.id.constraintLayout, registration_details);
transection.commit();
Toast.makeText(getActivity(),"Goingg " +name,Toast.LENGTH_LONG).show();
}
});
return rootView;
}
}
Updated SecondFragment
import android.app.Application;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.jar.Attributes;
public class Registration_Details extends Fragment {
RecyclerView recyclerView;
ArrayList list;
List<String> list2;
MyAddapter myAddapter;
Context context;
Bundle bundle;
TextView textView,textView2,textView3;
String name, contact,email;
private Random mRandom = new Random();
private TextView memail,mphone,muser;
View rootView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onStart() {
super.onStart();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.registration_details, container, false);
recyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this.getActivity());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
Bundle bundle = this.getArguments();
if (bundle != null) {
name = bundle.getString("Name");
contact = bundle.getString("Contact");
email = bundle.getString("Email");
}
list = new ArrayList<String>();
list.add(name);
list.add(contact);
list.add(email);
Log.e(name, "This is my message");
myAddapter = new MyAddapter(getActivity(), list, new OnMyItemClickListner() {
@Override
public void onItemClicked(int pos) {
}
}, new OndeleteItem() {
@Override
public void ondelete(int pos) {
Toast.makeText(getActivity(), String.valueOf(name), Toast.LENGTH_LONG).show();
myAddapter.notifyDataSetChanged();
}
}
);
recyclerView.setAdapter(myAddapter);
return rootView;
}
}
MyAddapter
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentActivity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.example.suyash.shivrai_tech.OnMyItemClickListner;
import java.util.List;
public class MyAddapter extends RecyclerView.Adapter<MyAddapter.MyViewHolder>{
Context context;
List<String> list,list2;
String s1,s2,s3;
public OnMyItemClickListner onitem;
public OndeleteItem ondeleteitem;
public MyAddapter(Context context, List<String> list, OnMyItemClickListner onitem, OndeleteItem ondeleteItem){
this.context = context;
this.list = list;
this.onitem = onitem;
this.ondeleteitem = ondeleteItem;
}
public MyAddapter(FragmentActivity activity, List<String> list, OndeleteItem ondeleteItem) {
}
@Override
public MyViewHolder onCreateViewHolder( ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row, viewGroup, false);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(MyViewHolder myViewHolder, final int i) {
myViewHolder.textView.setText(list.get(i));
myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onitem.onItemClicked(i);
}
});
myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ondeleteitem.ondelete(i);
}
});
}
@Override
public int getItemCount( ) {
return list.size();
}
class MyViewHolder extends RecyclerView.ViewHolder{
TextView textView,textView2;
public MyViewHolder(View itemView) {
super(itemView);
textView =(TextView)itemView.findViewById(R.id.tv);
}
}
}