Java.Lang.NullPointerException из textbox в массив

221
28 мая 2017, 18:57

Когда пытаюсь передать значение из текст бокса выдаёт ошибку в lv.adapter. Как это исправить ? Если заполнить массив "crime" в классе CrimeFragment в самом коде то проблемы не возникает.

        private void Button1_Click(object sender, System.EventArgs e)
    {
        Intent intent = new Intent(this, typeof(MMainActivity));//activity2
        // intent.PutExtra("spisok", "POSILAET");
        /*formiratemas fm = new formiratemas();
        fm.formiratecheck(edittext1.Text);*/
        CrimeFragment Cf = new CrimeFragment();
        string[] raw = edittext1.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);      
        Cf.lo(raw);
        Spisok Spisokpok = new Spisok()
        {
            IDSpisokPok = 1,
            SpisokPok = edittext1.Text
        };
        intent.PutExtra("Spisokpok", JsonConvert.SerializeObject(Spisokpok));
        this.StartActivity(intent);
       /* this.StartActivity(intent);
        this.Finish();*/
    }

CrimeFragment.cs

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using Android.Content;
 using Android.OS;
 using Android.Runtime;
 using Android.Views;
 using Android.Widget;
 using Android.Support.V4.App;
 using Newtonsoft.Json;
 namespace App1.mFrags
 {
     class CrimeFragment : Fragment
{
    private ListView lv;
    string[] crime ;// = { "blacklist", "blacklist", "blacklist", "blacklist", "blacklist" };
    private ArrayAdapter adapder;
   public void lo (string[] srt)
    {
        crime = srt;
    }
    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        View rootview = inflater.Inflate(Resource.Layout.crimelayout, container, false);
        lv = rootview.FindViewById<ListView>(Resource.Id.crimeLv);
        adapder = new ArrayAdapter(this.Activity, Android.Resource.Layout.SimpleExpandableListItem1, crime);
        lv.Adapter = adapder;
        lv.ItemClick += Lv_ItemClick;
        return rootview;
    }
    private void Lv_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
    {
        Toast.MakeText(this.Activity, crime[e.Position], ToastLength.Short).Show();
    }
}
}

MMainActivity.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.Support.V4.App;
using Android.Support.V4.View;
using App1.mFrags;
using Newtonsoft.Json;
namespace App1
{
    [Activity(Label = "MMainActivity")]
    class MMainActivity : FragmentActivity, ActionBar.ITabListener
    {
        Spisok Spisok;
        private ActionBar ab;
        private ViewPager vp;
        private Android.Support.V4.App.FragmentManager fm;
        private MyPagerAdapter adapter;
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.MMain);
            Spisok = JsonConvert.DeserializeObject<Spisok>        
(Intent.GetStringExtra("Spisokpok"));
        string[] mas = Spisok.SpisokPok.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
        //CrimeFragment cfe = new CrimeFragment();
        //cfe.lo(mas);
        //ACTION BAR
        ab = this.ActionBar;
        ab.SetDisplayShowTitleEnabled(true);
        ab.NavigationMode = ActionBarNavigationMode.Tabs;
        //FRAGMENT MANAGER
        fm = this.SupportFragmentManager;
        //ADAPTER
        adapter = new MyPagerAdapter(fm, getFragments());
        //VIEWPAGER
        vp = FindViewById<ViewPager>(Resource.Id.pager);
        vp.PageSelected += Vp_PageSelected;
        vp.Adapter = adapter;
        //ADDTABS
        addtabs();
    }
    private void Vp_PageSelected(object sender, ViewPager.PageSelectedEventArgs e)
    {
        ab.SetSelectedNavigationItem(e.Position);
    }
    private JavaList<Android.Support.V4.App.Fragment> getFragments()
    {
        JavaList<Android.Support.V4.App.Fragment> fragments = new JavaList<Android.Support.V4.App.Fragment>();
        fragments.Add(new CrimeFragment());
        fragments.Add(new DramaFragment());
        fragments.Add(new DocumentaryFragment());
        return fragments;
    }
    private void addtabs()
    {
        ActionBar.Tab t = ab.NewTab().SetText("СОБАЧЬЯ").SetTabListener(this);
        ab.AddTab(t);
        t = ab.NewTab().SetText("БУДКА").SetTabListener(this);
        ab.AddTab(t);
        t = ab.NewTab().SetText("МИСКА").SetTabListener(this);
        ab.AddTab(t);
    }
    public void OnTabReselected(ActionBar.Tab tab, Android.App.FragmentTransaction ft)
    {
    }
    public void OnTabSelected(ActionBar.Tab tab, Android.App.FragmentTransaction ft)
    {
        vp.CurrentItem = tab.Position;
    }
    public void OnTabUnselected(ActionBar.Tab tab, Android.App.FragmentTransaction ft)
    {
    }
}}

MyPagerAdapter.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.Support.V4.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
namespace App1.mFrags
{
    class MyPagerAdapter : FragmentPagerAdapter
    {
        private JavaList<Fragment> fragments;
    public MyPagerAdapter (FragmentManager fm, JavaList<Fragment> fragments) : base(fm)
    {
        this.fragments = fragments;
    }
    public override int Count
    {
        get
        {
            return fragments.Size();
        }
    }
    public override Fragment GetItem(int position)
    {
       return fragments[position];
    }
}
}
READ ALSO
Как показать невидимое окно?

Как показать невидимое окно?

У меня есть окно, которое выполняет какой-то процесс с визуализациейИ мне надо чтобы при запуске приложение оно работало, но не показывалось...

319
Не передаётся аргумент cmd

Не передаётся аргумент cmd

Самый простой способ сделать то, что вам нужно, такой:

317
Рисование фигур на элементе wpf

Рисование фигур на элементе wpf

Всем доброе время суток! Можно ли реализовать отрисовку различных фигур на каком-то элементе управления, для примера этот: <lvc:CartesianChart GridColumn="1"...

345