dimanche 3 mai 2015

Unable to add items to listview in Fragment

I am trying to get a bundle and adding that value to the listview which crashes my app.

TaskActivity:

public class AddTask extends Activity {
Button addtask;
      @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.add_task);

            // get action bar   
            ActionBar actionBar = getActionBar();

            // Enabling Up / Back navigation
            actionBar.setDisplayHomeAsUpEnabled(true);

            addtask = (Button) findViewById(R.id.btnaddlist);
            findViewById(R.id.btnaddlist).setOnClickListener(
                      new View.OnClickListener() {
                          @Override
                          public void onClick(View arg0) {
                              EditText edit = (EditText) findViewById(R.id.tskname);
                              Intent i = new Intent(AddTask.this,
                                      MainActivity.class);

                              Bundle bundle = new Bundle();
                              String TaskName = edit.getText().toString();
                              // Add your data from getFactualResults method to bundle
                              bundle.putString("NewTask", TaskName);
                              i.putExtras(bundle);
                              startActivity(i);
                          }
                      });

          }

        }

This is how my HomeFragment looks:

  public class HomeFragment extends Fragment  {
    ListView lv;
    public HomeFragment(){}
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_home, container, false);
        Bundle extras = getActivity().getIntent().getExtras(); 
        String ItemName =  extras.getString("NewTask");
        lv = (ListView)rootView.findViewById(R.id.tasklist);

        if (extras != null) {
            ArrayList<String> list = new ArrayList<String>();
            ArrayAdapter<String> Listadapter;
            Listadapter = new ArrayAdapter<String>(getActivity().getApplicationContext(),android.R.layout.simple_list_item_1, list);
            list.add(ItemName);
            lv.setAdapter(Listadapter);

        }
        return rootView;
  }

}

Home Fragment xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://ift.tt/nIICcg"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


 <ListView
        android:id="@+id/tasklist"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
</RelativeLayout>

Logcat exception:

05-03 13:01:12.949: E/AndroidRuntime(30276): FATAL EXCEPTION: main
05-03 13:01:12.949: E/AndroidRuntime(30276): Process: com.sample.example, PID: 30276
05-03 13:01:12.949: E/AndroidRuntime(30276): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.widget.AbsListView.obtainView(AbsListView.java:2344)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.widget.ListView.measureHeightOfChildren(ListView.java:1270)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.widget.ListView.onMeasure(ListView.java:1182)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.View.measure(View.java:17448)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.widget.RelativeLayout.measureChild(RelativeLayout.java:697)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:481)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.View.measure(View.java:17448)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5465)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.View.measure(View.java:17448)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:762)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.View.measure(View.java:17448)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5465)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.View.measure(View.java:17448)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5465)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:447)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.View.measure(View.java:17448)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5465)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2560)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.View.measure(View.java:17448)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2031)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1189)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1402)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1077)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5884)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.Choreographer.doCallbacks(Choreographer.java:580)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.Choreographer.doFrame(Choreographer.java:550)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.os.Handler.handleCallback(Handler.java:739)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.os.Handler.dispatchMessage(Handler.java:95)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.os.Looper.loop(Looper.java:135)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at android.app.ActivityThread.main(ActivityThread.java:5312)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at java.lang.reflect.Method.invoke(Native Method)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at java.lang.reflect.Method.invoke(Method.java:372)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
05-03 13:01:12.949: E/AndroidRuntime(30276):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)

Aucun commentaire:

Enregistrer un commentaire