I know this is a duplicate question but i am not able to find the correct on for me I am trying to send some data from my OrderMadeFragment to OrderTakenFragment but I am not able to
here are my classes
OrderMadeFragment
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
/**
* on 12/22/2015.
*/
public class OrderMadeFragment extends Fragment
{
SharedPreferences sh_pref;
SharedPreferences.Editor toEdit;
Button b;
EditText e;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_order_made, container, false);
sh_pref=getContext().getSharedPreferences("start", getContext().MODE_PRIVATE);
toEdit = sh_pref.edit();
b=(Button)rootView.findViewById(R.id.button);
e=(EditText)rootView.findViewById(R.id.editText);
b.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String qv=e.getText().toString();
OrderTakenFragment ldf = new OrderTakenFragment();
Bundle args = new Bundle();
args.putString("YourKey", qv);
ldf.setArguments(args);
Log.e("args", args.toString());
//Inflate the fragment
getFragmentManager().beginTransaction().add(R.id.container, ldf).commit();
}
});
return rootView;
}
}
OrderTakenFragment
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Created by on 12/22/2015.
*/
public class OrderTakenFragment extends Fragment
{
TextView v;
String bn="abc";
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_order_taken, container, false);
v=(TextView)rootView.findViewById(R.id.textView);
// String value = getArguments().getString("YourKey");
// Log.e("YourKey",value);
v.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
bn = getArguments().getString("YourKey");
Toast.makeText(getActivity(),bn,Toast.LENGTH_LONG).show();
}
});
return rootView;
}
}
Logcat Error
12-23 11:17:11.811 10669-10669/com.example.qualwebs.test E/args: Bundle[{YourKey=Name}]
12-23 11:17:16.212 10669-10669/com.example.qualwebs.test E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.qualwebs.test, PID: 10669
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
at com.example.qualwebs.test.OrderTakenFragment$1.onClick(OrderTakenFragment.java:31)
at android.view.View.performClick(View.java:4785)
at android.view.View$PerformClick.run(View.java:19884)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5343)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:702)
I followed How to send data from one Fragment to another Fragment? link