Как отправить данные String из Activity.cs в Fragment.cs и отобразить их в макете Textview для Fragment.xml - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь отправить строку данных из моего Activity.cs в Fragment1.cs и отобразить ее в моем макете Fragment1.xml.Если вы видите в файле Activity.cs, я хочу отправить «текстовую» строку в мой Fragment.cs.

Примечание: var text = newSentence.ToString ();// этот текст я хочу отправить на мой Fragmnet.cs

Пожалуйста, помогите мне заранее спасибо

Activiy.cs

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            if ((requestCode == PickImageId) && (resultCode == Result.Ok) && (data != null))
            {
                //Android.Net.Uri uri = data.Data;
                var path = UriHelper.GetPathFromUri(this, data.Data);
                // var path = GetPathToImage(uri);
                //System.Diagnostics.Debug.WriteLine("Image path == " + path);
                // Bitmap bitmap = BitmapFactory.DecodeFile(path);
                Bitmap bitmap =  loadAndResizeBitmap.Conversionandresize(path,4032,3024);
                ColorMatrix matrix = new ColorMatrix();
                matrix.SetSaturation(0);
               _imageView.SetColorFilter(new ColorMatrixColorFilter(matrix));
               _imageView.SetImageBitmap(bitmap);

                TextRecognizer txtRecognizer = new TextRecognizer.Builder(ApplicationContext).Build();
                if (!txtRecognizer.IsOperational)
                {
                    Log.Error("Error", "Detector dependencies are not yet available");
                }
                else
                {
                    Frame frame = new Frame.Builder().SetBitmap(bitmap).Build();
                    SparseArray items = txtRecognizer.Detect(frame);
                    StringBuilder strBuilder = new StringBuilder();
                    for (int i = 0; i < items.Size(); i++)
                    {
                        TextBlock item = (TextBlock)items.ValueAt(i);
                        strBuilder.Append(item.Value);
                        strBuilder.Append("\n");

                    }

                    int myLimit = 10;
                    string sentence = strBuilder.ToString();
                    // string[] words = sentence.Split("/n", ',');
                    string[] words = sentence.Split(new[] { " ","\n\r"}, StringSplitOptions.RemoveEmptyEntries);

                    StringBuilder newSentence = new StringBuilder();
                    string line = " ";
                    foreach (string word in words)
                    {
                        if ((line + word).Length > myLimit)
                        {
                            newSentence.Append(line);
                            line = " ";
                        }

                        line += string.Format("{0} ", word);
                    }

                    if (line.Length > 0)
                        newSentence.Append(line);

                    var text = newSentence.ToString();
}

Fragment1.cs

namespace OCR_Pro
{
    public class Fragment1 : Android.Support.V4.App.Fragment
    {
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
        }

        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {

            var view = inflater.Inflate(Resource.Layout.Fragment1, container, false);
            var textView = view.FindViewById<TextView>(Resource.Id.txtView);

            return view;
        }
    }
}
...