Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ItemLongClick ListView上重新使用DialogFragment_C#_Android_Android Fragments_Xamarin_Xamarin.android - Fatal编程技术网

C# 在ItemLongClick ListView上重新使用DialogFragment

C# 在ItemLongClick ListView上重新使用DialogFragment,c#,android,android-fragments,xamarin,xamarin.android,C#,Android,Android Fragments,Xamarin,Xamarin.android,我正在尝试设置一个可以在ListView的ItemLongClick上显示的DialogFragment布局。对于listview中的每个项目,DialogFragment必须具有相同的布局。我也在使用Xamarin和C# 调用对话框片段的代码块。此代码位于listview_ItemLongClick(对象发送者,AdapterView.ItemLongClickEventArgs e)的内部 到目前为止,我已经尝试: Android.App.FragmentTransaction transa

我正在尝试设置一个可以在ListView的ItemLongClick上显示的DialogFragment布局。对于listview中的每个项目,DialogFragment必须具有相同的布局。我也在使用Xamarin和C#

调用对话框片段的代码块。此代码位于listview_ItemLongClick(对象发送者,AdapterView.ItemLongClickEventArgs e)的内部

到目前为止,我已经尝试:

Android.App.FragmentTransaction transaction_prev = FragmentManager.BeginTransaction().AddToBackStack(null);
        dialog_preview_busn previewBusn = new dialog_preview_busn(gName, gAddress, gZip, gNumber, gEmail, gWebsite, gHours, gImage);
        previewBusn.Show(transaction_prev, "Dialog Preview Business");
我还尝试使用Xamarin文档介绍如何设置片段

当我退出DialogFragment并尝试重新打开它时(在同一个项目上和不同的项目上),我也会遇到一个错误

Android.Views.InflateException:二进制XML文件行#1:膨胀类片段时出错

给出错误的那行是

var view=inflater.Inflate(Resource.Layout.dialog\u preview\u busn,container,false)

这是XML文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/dialogLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:minWidth="300dp"
android:minHeight="200dp"
android:weightSum="100"
android:gravity="center">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="15"
android:id="@+id/relativeLayout2"
android:minWidth="25px"
android:minHeight="25px">
<ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:layout_marginBottom="5dp"
    android:indeterminate="true"
    android:background="@drawable/progressBarDesign"
    android:id="@+id/fragProgress"
    android:visibility="invisible" />
</RelativeLayout>
<TextView
    android:text=""
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="10"
    android:gravity="center"
    android:textSize="20sp"
    android:id="@+id/txtName" />
<LinearLayout
    android:background="@drawable/dialogLayout"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="5">
    <LinearLayout
        android:background="@drawable/dialogLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="100">
        <TextView
            android:text="Address:  "
            android:layout_width="0dp"
            android:layout_weight="50"
            android:layout_height="fill_parent"
            android:gravity="right"
            android:textSize="15sp"
            android:id="@+id/labAddess" />
        <TextView
            android:text=""
            android:layout_width="0dp"
            android:layout_weight="50"
            android:layout_height="fill_parent"
            android:gravity="left"
            android:textSize="15sp"
            android:id="@+id/txtAddress"
            android:layout_below="@id/txtName" />
    </LinearLayout>
</LinearLayout>
<LinearLayout
    android:background="@drawable/dialogLayout"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="5">
    <LinearLayout
        android:background="@drawable/dialogLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="100">
        <TextView
            android:text="Number:  "
            android:layout_width="0dp"
            android:layout_weight="50"
            android:layout_height="fill_parent"
            android:gravity="right"
            android:textSize="15sp"
            android:id="@+id/labNumber" />
        <TextView
            android:text=""
            android:layout_width="0dp"
            android:layout_weight="50"
            android:layout_height="fill_parent"
            android:gravity="left"
            android:textSize="15sp"
            android:id="@+id/txtNumber"
            android:layout_below="@id/txtAddress" />
    </LinearLayout>
</LinearLayout>
<LinearLayout
    android:background="@drawable/dialogLayout"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="5">
    <LinearLayout
        android:background="@drawable/dialogLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="100">
        <TextView
            android:text="Email:  "
            android:layout_width="0dp"
            android:layout_weight="50"
            android:layout_height="fill_parent"
            android:gravity="right"
            android:textSize="15sp"
            android:id="@+id/labEmail" />
        <TextView
            android:text=""
            android:layout_width="0dp"
            android:layout_weight="50"
            android:layout_height="fill_parent"
            android:gravity="left"
            android:textSize="15sp"
            android:id="@+id/txtEmail"
            android:layout_below="@id/txtNumber" />
    </LinearLayout>
</LinearLayout>
<LinearLayout
    android:background="@drawable/dialogLayout"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="5">
    <LinearLayout
        android:background="@drawable/dialogLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="100">
        <TextView
            android:text="Website:  "
            android:layout_width="0dp"
            android:layout_weight="50"
            android:layout_height="fill_parent"
            android:gravity="right"
            android:textSize="15sp"
            android:id="@+id/labEmail" />
        <TextView
            android:text=""
            android:layout_width="0dp"
            android:layout_weight="50"
            android:layout_height="fill_parent"
            android:gravity="left"
            android:textSize="15sp"
            android:id="@+id/txtWebsite"
            android:layout_below="@id/txtEmail" />
    </LinearLayout>
</LinearLayout>
<TextView
    android:text="Hours"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="5"
    android:gravity="center"
    android:textSize="15sp"
    android:id="@+id/labHours"
    android:layout_below="@id/txtWebsite" />
<TextView
    android:text=""
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="5"
    android:gravity="center"
    android:textSize="15sp"
    android:id="@+id/txtHours"
    android:layout_below="@id/labEmail" />
<ImageView
    android:layout_width="30sp"
    android:layout_height="30sp"
    android:paddingTop="6sp"
    android:layout_gravity="center"
    android:background="#4A115C"
    android:src="@drawable/menu_down_arrow"
    android:id="@+id/downArrow"/>
<LinearLayout
    android:background="@drawable/dialogLayout"
    android:id="@+id/mapLayout"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="5">
<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="200sp"
    android:layout_marginLeft="10sp"
    android:layout_marginRight="10sp"
    android:layout_marginTop="15sp"
    android:layout_marginBottom="10sp"
    android:name="com.google.android.gms.maps.MapFragment" />
</LinearLayout>
</LinearLayout>

对于对话框_prev_busn.cs:

    using Android.App;
    using Android.OS;
    using Android.Views;
    using Android.Widget;
    using Android.Graphics;
    using Android.Gms.Maps;
    using System;
    using Android.Gms.Maps.Model;

    namespace My_Town_App.Droid
    {
        class dialog_preview_busn : DialogFragment
        {
            public string gName, gAddress, gNumber, gEmail, gWebsite, gHours, gImage;
            public int gZip;
            private GoogleMap gMap;

            public dialog_preview_busn(string Name, string Address, int Zip, string Number, string Email, string Website, string Hours, string Image)
            {
                gName = Name;
                gAddress = Address;
                gZip = Zip;
                gNumber = Number;
                gEmail = Email;
                gWebsite = Website;
                gHours = Hours;
                gImage = Image;
                System.Diagnostics.Debug.Write("-----------------");
                System.Diagnostics.Debug.Write("dialog_preview_busn");
                System.Diagnostics.Debug.Write("-----------------");
                System.Diagnostics.Debug.Write("Name: " + Name + "   Address: " + Address + "    Zip: " + Zip + "    Number: " + Number);
                System.Diagnostics.Debug.Write("Email: " + Email + "    Website: " + Website + "    Hours: " + Hours + "    Image: " + Image);
                //gOnLogInComplete.Invoke(this, new OnLogInEventArgs(gtxtEmail.Text, gtxtPassword.Text));
                //PassedParams.Invoke(this, new PassedParams(user, pass));
            }

            //----------------------------------------
            // OnCreate Activity
            //----------------------------------------
            public override void OnActivityCreated(Bundle savedInstanceState)
            {
                Dialog.Window.RequestFeature(WindowFeatures.NoTitle); //Set the Title Bar to invisable
                base.OnActivityCreated(savedInstanceState);

                TextView txtName = View.FindViewById<TextView>(Resource.Id.txtName);
                TextView txtAdress = View.FindViewById<TextView>(Resource.Id.txtAddress);
                TextView txtNumber = View.FindViewById<TextView>(Resource.Id.txtNumber);
                TextView txtEmail = View.FindViewById<TextView>(Resource.Id.txtEmail);
                TextView txtWebsite = View.FindViewById<TextView>(Resource.Id.txtWebsite);
                TextView txtHours = View.FindViewById<TextView>(Resource.Id.txtHours);
                TextView labHours = View.FindViewById<TextView>(Resource.Id.labHours);
                ImageView downArrow = View.FindViewById<ImageView>(Resource.Id.downArrow);
                LinearLayout mapLayout = View.FindViewById<LinearLayout>(Resource.Id.mapLayout);

                mapLayout.Visibility = ViewStates.Gone;
                SetUpMap();
                downArrow.Click += delegate
                {
                    System.Diagnostics.Debug.Write("down arrow is working");
                    if (mapLayout.Visibility == ViewStates.Visible)
                    {
                        downArrow.SetImageResource(Resource.Drawable.menu_down_arrow);
                        mapLayout.Visibility = ViewStates.Gone;
                    }
                    else if (mapLayout.Visibility == ViewStates.Gone)
                    {
                        downArrow.SetImageResource(Resource.Drawable.menu_up_arrow);
                        mapLayout.Visibility = ViewStates.Visible;
                    }

                };

                txtName.Text = gName;
                txtName.PaintFlags = PaintFlags.UnderlineText;

                txtAdress.Text = (gAddress + " " + gZip).ToString();
                txtNumber.Text = gNumber;
                txtEmail.Text = gEmail;
                txtWebsite.Text = gWebsite;
                string[] aryHours = gHours.Split(',');
                foreach (string s in aryHours)
                {
                    txtHours.Text += (s + " ").ToString();
                }
                labHours.PaintFlags = PaintFlags.UnderlineText;

                Dialog.Window.Attributes.WindowAnimations = Resource.Style.dialog_animation; //set the animation
            }

            //----------------------------------------
            // OnCreate View
            //----------------------------------------

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

                var view = inflater.Inflate(Resource.Layout.dialog_preview_busn, container, false);
                return view;

            }

            private void SetUpMap()
            {
                if (gMap == null)
                {
                    FragmentManager.FindFragmentById<MapFragment>(Resource.Id.map);
                }


                LatLng location = new LatLng(50.897778, 3.013333);
                CameraPosition.Builder builder = CameraPosition.InvokeBuilder();
                builder.Target(location);
                builder.Zoom(18);
                builder.Bearing(155);
                builder.Tilt(65);
                CameraPosition cameraPosition = builder.Build();
                CameraUpdate cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition);
                MapFragment mapFrag = (MapFragment)FragmentManager.FindFragmentById<MapFragment>(Resource.Id.map);
                GoogleMap map = mapFrag.Map;

                if (map != null)
                {
                    map.MoveCamera(cameraUpdate);
                }
            }        

            public void OnMapReady(GoogleMap googleMap)
            {
                gMap = googleMap;
            }
        }
    }
使用Android.App;
使用Android.OS;
使用Android.Views;
使用Android.Widget;
使用Android.Graphics;
使用Android.Gms.Maps;
使用制度;
使用Android.Gms.Maps.Model;
名称空间My_Town_App.Droid
{
类对话框\u预览\u busn:DialogFragment
{
公共字符串gName、gAddress、gNumber、gEmail、gWebsite、gHours、gImage;
公共int gZip;
私有谷歌地图;
公共对话框\u预览\u busn(字符串名称、字符串地址、int-Zip、字符串编号、字符串电子邮件、字符串网站、字符串小时数、字符串图像)
{
gName=名称;
地址;
gZip=Zip;
gNumber=数字;
电子邮件;
gWebsite=网站;
小时=小时;
gImage=图像;
System.Diagnostics.Debug.Write(“-------------------”;
System.Diagnostics.Debug.Write(“对话框预览”);
System.Diagnostics.Debug.Write(“-------------------”;
System.Diagnostics.Debug.Write(“名称:“+Name+”地址:“+Address+”邮编:“+Zip+”编号:“+Number”);
系统。诊断。调试。写入(“电子邮件:“+电子邮件+”网站:“+网站+”小时:“+小时+”图像:“+图像”);
//调用(这是新的OnLogInEventArgs(gtxtEmail.Text,gtxtPassword.Text));
//调用(这个,新的PassedParams(用户,pass));
}
//----------------------------------------
//OnCreate活动
//----------------------------------------
已创建ActivityState(Bundle savedInstanceState)上的公共覆盖无效
{
Dialog.Window.RequestFeature(WindowFeatures.NoTitle);//将标题栏设置为不可见
创建的基本活动(savedInstanceState);
TextView txtName=View.findviewbyd(Resource.Id.txtName);
TextView txtAddress=View.findviewbyd(Resource.Id.txtAddress);
TextView txtNumber=View.findviewbyd(Resource.Id.txtNumber);
TextView-txtEmail=View.findviewbyd(Resource.Id.txtEmail);
TextView txtWebsite=View.findviewbyd(Resource.Id.txtWebsite);
TextView txtHours=View.findviewbyd(Resource.Id.txtHours);
TextView labHours=View.findviewbyd(Resource.Id.labHours);
ImageView向下箭头=View.FindViewById(Resource.Id.downArrow);
LinearLayout mapLayout=View.FindViewById(Resource.Id.mapLayout);
mapLayout.Visibility=ViewStates.Gone;
SetUpMap();
向下箭头。单击+=委派
{
System.Diagnostics.Debug.Write(“向下箭头正在工作”);
如果(mapLayout.Visibility==ViewState.Visible)
{
SetImageResource(Resource.Drawable.menu\u向下箭头);
mapLayout.Visibility=ViewStates.Gone;
}
else if(mapLayout.Visibility==ViewStates.Gone)
{
向下箭头.SetImageResource(Resource.Drawable.menu\u向上箭头);
mapLayout.Visibility=ViewState.Visible;
}
};
Text=gName;
txtName.PaintFlags=PaintFlags.UnderlineText;
Text=(gAddress+“”+gZip).ToString();
Text=gNumber;
Text=gEmail;
Text=gWebsite;
字符串[]aryHours=gHours.Split(',');
foreach(以小时为单位的字符串s)
{
txtHours.Text+=(s+“”).ToString();
}
labHours.PaintFlags=PaintFlags.UnderlineText;
Dialog.Window.Attributes.WindowAnimations=Resource.Style.Dialog\u animation;//设置动画
}
//----------------------------------------
//OnCreate视图
//----------------------------------------
创建视图上的公共覆盖视图(布局、充气机、视图组容器、捆绑包保存状态)
{
base.OnCreateView(充气机、容器、保存状态);
var视图=充气机。充气(Resource.Layout.dialog\u preview\u busn,container,false);
返回视图;
}
私有void SetUpMap()
{
如果(gMap==null)
{
FragmentManager.FindFragmentById(Resource.Id.map);
}
板条位置=