0

In Home.java activity extends Fragment and I take custom Listview with two buttons.So I want to move next activity when button is clicked. I use Fragement and FragmentMangar code. But It does not work.It is giving error of NullpointerException.I also tried Intent and found many ideas but does not solve my issue.

Home.java

 public class Home extends Fragment
    {
        StrictMode.ThreadPolicy thmod = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        JSONParser jParser = new JSONParser();
         private Handler handler;
        private ListView home_lst;
        private TextView home_txt_dt;

        // JSON Node names
         static final String TAG_SUCCESS = "success";
         static final String TAG_PRODUCTS = "customerdetail";
          static final String TAG_PID = "CId";
         static final String TAG_NAME = "Cname";
         public static final String TAG_BNAME = "Cbusinessname";
         public static final String TAG_Address = "Caddress";
         public static final String TAG_PHONE = "Cphone";
         public static final String TAG_TIME = "Cordertime";

        View rootview;
        private ArrayList<HashMap<String, String>> productsList=new ArrayList<HashMap<String,String>>();
        ArrayList<String> ali = new ArrayList<String>();
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) 
        {
             rootview = inflater.inflate(R.layout.home, container,false);
             StrictMode.setThreadPolicy(thmod);
            Toast.makeText(getActivity(), "Home", Toast.LENGTH_LONG).show();
            getActivity().setTitle("Home");
            initialize();

            home_btn_setting.setOnClickListener(this);
            home_btn_porder.setOnClickListener(this);
            home_btn_help.setOnClickListener(this);
        //  home_lst.setOnItemClickListener(this);   
                // Loading products in Background Thread
                new LoadAllProducts().execute();

            return rootview;
        }


        private void initialize() {
            // TODO Auto-generated method stub
            home_lst=(ListView)rootview.findViewById(R.id.home_lst);
            home_txt_dt=(TextView)rootview.findViewById(R.id.home_dt);

        }

        public class LoadAllProducts extends AsyncTask <String,String,String>{

            private ProgressDialog pDialog;
            private Ladapter ladapter;

            /*protected Object doInBackground(Object... arg0) {
                // TODO Auto-generated method stub
                return null;
            }*/
            @Override
            protected void onPreExecute() {
                // TODO Auto-generated method stub
                super.onPreExecute();
                 pDialog = new ProgressDialog(getActivity());
                 pDialog.setMessage("Loading products. Please wait...");
                 pDialog.setIndeterminate(false);
                 pDialog.setCancelable(false);
                 pDialog.show();
            }

            @Override
            protected String doInBackground(String... args) {
                // TODO Auto-generated method stub
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                // getting JSON string from URL
                JSONObject json = jParser.makeHttpRequest( "url", "GET", params);
                // Check your log cat for JSON reponse

                try {
                    // Checking for SUCCESS TAG
                    int success = json.getInt(TAG_SUCCESS);
                    System.out.println("Success"+success);
                    if (success == 1) {
                        // products found
                        // Getting Array of Products
                      JSONArray  products = json.getJSONArray(TAG_PRODUCTS);

                        // looping through All Products
                        for (int i = 0; i < products.length(); i++) 
                        {
                            System.out.println(i);
                            JSONObject c = products.getJSONObject(i);

                            String CId = c.getString(TAG_PID); 
                            String Cname = c.getString(TAG_NAME);
                            String Cbusinessname=c.getString(TAG_BNAME);
                            String Caddress = c.getString(TAG_Address);
                            String Cphone = c.getString(TAG_PHONE);
                            String Cordertime=c.getString(TAG_TIME);
                            HashMap<String, String> map = new HashMap<String, String>();
                            ali.add(TAG_PID);
                            map.put(TAG_PID,"OrderId : "+CId);
                            map.put(TAG_TIME, Cordertime);
                            productsList.add(map);
                        }
                        System.out.println(productsList.size());
                    }
                    else {
                        // no products found
                        // Launch Add New product Activity
                        System.out.println("There is no data");
                       }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                return json.toString();
            }
            @Override
            protected void onPostExecute(String result) {
                // TODO Auto-generated method stub
                super.onPostExecute(result);
                 pDialog.dismiss();
                // updating UI from Background Thread

                     try{
                            // updating listview
                         ladapter = new Ladapter(getActivity(),R.layout.listitem,productsList);
                           home_lst.setAdapter(ladapter);
                     }
                        catch(Exception e)
                        {
                            e.printStackTrace();
                        }
            }
        }
        public void transpactivity(Fragment fragment1) 
        {

               System.out.println("test activity :"+fragment1);
               FragmentManager fragmentmanager = getFragmentManager();
               FragmentTransaction ft = fragmentmanager.beginTransaction();
               ft.replace(R.id.content_frame,fragment1).commit();
               Intent ine = new Intent(Intent.ACTION_VIEW);     
          System.out.println("test activity :"+fragment1);
        }
    }

Ladapter.java

  public class Ladapter extends BaseAdapter {
         Fragment fragment=null;
        Context context;
        int layoutid;
        ArrayList<HashMap<String, String>> al = new ArrayList<HashMap<String,String>>();
        public Ladapter(Context context, int layoutid,ArrayList<HashMap<String, String>> al) 
        {
            this.context=context;
            this.layoutid=layoutid;
            this.al = al;
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return al.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return al.get(position);
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent)
        {

            Listholder lh=null;
            if(convertView==null)
            {
                LayoutInflater infltate = ((Activity) context).getLayoutInflater();
                convertView=infltate.inflate(layoutid, parent,false);
                lh = new Listholder();
                lh.txt_oid = (TextView)convertView.findViewById(R.id.lst_txt_orderid);
                lh.txt_time=(TextView)convertView.findViewById(R.id.lst_txt_time);
                lh.img_cle=(ImageView)convertView.findViewById(R.id.lst_img_cle);
                lh.img_ok=(ImageView)convertView.findViewById(R.id.lst_img_ok);
                convertView.setTag(lh);
            }
            else
            {
                lh=(Listholder) convertView.getTag();
            }
            HashMap<String, String> hst = new HashMap<String, String>();
            hst=al.get(position);
            lh.txt_oid.setText(hst.get(Home.TAG_PID));
            lh.txt_time.setText("Received @ "+hst.get(Home.TAG_TIME));

            //Click event of Button cancle and ok

            lh.img_cle.setOnClickListener(new View.OnClickListener() {  //Cancel Button click event

                @SuppressLint("NewApi")
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    System.out.println("Cancel button is click");
                    fragment = new CancelOrder();
                    nextactivity();             
                }
            });
            lh.img_ok.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    fragment = new OrderTime();
                    nextactivity();
                }
            });
            return convertView;
        }

        class Listholder
        {

            public ImageView img_ok;
            public ImageView img_cle;
            public TextView txt_time;
            public TextView txt_oid;

        }

        protected void nextactivity() {
            // TODO Auto-generated method stub
            if(fragment!=null)
            {
                Home hm = new Home();
                hm.transpactivity(fragment);
            }
            else
            {
                Toast.makeText(context, "There is no file", Toast.LENGTH_LONG).show();
            }

        }
    }

Error

12-20 11:31:40.947: E/AndroidRuntime(1425): FATAL EXCEPTION: main
12-20 11:31:40.947: E/AndroidRuntime(1425): java.lang.NullPointerException
12-20 11:31:40.947: E/AndroidRuntime(1425):     at android.content.ComponentName.<init>(ComponentName.java:75)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at android.content.Intent.<init>(Intent.java:3004)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at com.example.bluetoothapp.Home.transpactivity(Home.java:214)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at com.example.bluetoothapp.Ladapter.nextactivity(Ladapter.java:127)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at com.example.bluetoothapp.Ladapter$1.onClick(Ladapter.java:90)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at android.view.View.performClick(View.java:3480)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at android.view.View$PerformClick.run(View.java:13983)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at android.os.Handler.handleCallback(Handler.java:605)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at android.os.Looper.loop(Looper.java:137)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at android.app.ActivityThread.main(ActivityThread.java:4340)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at java.lang.reflect.Method.invokeNative(Native Method)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at java.lang.reflect.Method.invoke(Method.java:511)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-20 11:31:40.947: E/AndroidRuntime(1425):     at dalvik.system.NativeStart.main(Native Method)

In Ladapter activity when clicked button of cancel or ok pointer goes to nextactivity() method and then Home.java activity.Transpactivity() method of Home.java activity ,I am getting error NullPointerException at begintranscation().repalce().commit;

Sorry, I cannot post url.

Layout Home.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/wallpaper7">

    <TextView
        android:id="@+id/home_nm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:text="@string/home_name"
        android:textColor="#ffffff"
        android:textSize="@dimen/text_size" />

    <TextView
        android:id="@+id/home_dt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/home_nm"
        android:layout_alignParentRight="true"
        android:layout_marginRight="22dp"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:text="@string/home_dt"
        android:textSize="@dimen/text_size" />

    <TextView
        android:id="@+id/home_ins"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/home_nm"
        android:layout_marginTop="10dp"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:text="@string/home_btn_instruction"
        android:textSize="@dimen/text_instruction"
        android:textStyle="italic" />

     <Button
        android:id="@+id/home_btn_setting"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/home_ins"
        android:layout_marginLeft="@dimen/activity_horizontal_margin"
        android:layout_marginTop="7dp"
        android:text="@string/home_btn_nm1" 
        android:textSize="@dimen/home_btn_size"/>

      <Button
          android:id="@+id/home_btn_help"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignBaseline="@+id/home_btn_pastorder"
          android:layout_alignBottom="@+id/home_btn_pastorder"
          android:layout_marginLeft="19dp"
          android:layout_toRightOf="@+id/home_btn_pastorder"
          android:text="@string/home_btn_nm3"
          android:textSize="@dimen/home_btn_size" />

    <TextView
        android:id="@+id/home_order"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/home_btn_setting"
        android:layout_marginTop="5dp"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:text="@string/home_new_order"
        android:textSize="@dimen/text_instruction"
        android:textStyle="bold" />

    <View
        android:id="@+id/home_view"
        android:layout_width="fill_parent"
        android:layout_height="3dp"
        android:layout_below="@+id/home_order"
        android:background="#333333" />

        <ListView
            android:id="@+id/home_lst"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/home_view"
            android:layout_marginLeft="@dimen/activity_horizontal_margin"
            android:layout_marginRight="@dimen/activity_horizontal_margin"
            android:layout_marginTop="20dp"
            android:background="#ffffff" />

     <Button
         android:id="@+id/home_btn_pastorder"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignBaseline="@+id/home_btn_setting"
         android:layout_alignBottom="@+id/home_btn_setting"
         android:layout_centerHorizontal="true"
         android:paddingLeft="5dp"
         android:paddingRight="5dp"
         android:text="@string/home_btn_nm2"
         android:textSize="@dimen/home_btn_size" />

</RelativeLayout>

Ladapter layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:layout_margin="@dimen/activity_horizontal_margin">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginRight="20dp">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/lst_txt_orderid"
        android:text="Order Id"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/lst_txt_time"
        android:text="name"/>
</LinearLayout>
<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/cancel1_mini"
        android:layout_marginRight="40dp"
        android:id="@+id/lst_img_cle"/>
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ok1_mini"
        android:layout_gravity="end"
        android:id="@+id/lst_img_ok"/>
    </LinearLayout>
user2893626
  • 3
  • 1
  • 4

1 Answers1

0

Try using getChildFragmentManager() instead. for ex:

public void transpactivity(Fragment fragment1) 
        {

               System.out.println("test activity :"+fragment1);
               FragmentManager fragmentmanager = getChildFragmentManager();
               FragmentTransaction ft = fragmentmanager.beginTransaction();
               ft.replace(R.id.content_frame,fragment1).commit();
               Intent ine = new Intent(Intent.ACTION_VIEW);     
          System.out.println("test activity :"+fragment1);
        }

Replacing fragment inside fragment requires getChildFragmentManager() manager.

vipul mittal
  • 17,343
  • 3
  • 41
  • 44