如何将照片添加到 android 上的 ReferrenceScreen?
How to add the photos to ReferrenceScreen on android?
现在创建一个 Fragment 子类,它将显示您的 ImageView 并提供一个容器来保存您的首选项:
public class More : Android.Support.V4.App.Fragment
{
private MainActivity mainActivity;
public override void OnCreate (Bundle savedInstanceState)
{
base.OnCreate (savedInstanceState);
// Create your fragment here
}
public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Use this to return your custom view for this Fragment
// return inflater.Inflate(Resource.Layout.YourFragment, container, false);
//return base.OnCreateView (inflater, container, savedInstanceState);
return inflater.Inflate(Resource.Layout.MoreLayout,container,false);
}
[Obsolete("deprecated")]
public override void OnAttach (Android.App.Activity activity)
{
mainActivity = (MainActivity)activity;
base.OnAttach (activity);
}
public override void OnActivityCreated (Bundle savedInstanceState)
{
base.OnActivityCreated (savedInstanceState);
mainActivity.FragmentManager.BeginTransaction().Add(Resource.Id.PreferencesContainer, new ReferenceFragment()).Commit();
}
}
我想在 PreferenceScreen 中设置图片如下图
Settings
创建一个仅显示您的首选项的 PreferenceFragment 子类,我 copy/pasted 将您的首选项放入文件 Resources/layout/MyPrefs.xml 中,然后将它们加载到 Fragment 的 OnCreate 中:
public class ReferenceFragment : PreferenceFragment
{
public override void OnCreate (Bundle savedInstanceState)
{
base.OnCreate (savedInstanceState);
AddPreferencesFromResource (Resource.Xml.preferecesSettings);
// Create your fragment here
}
public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Use this to return your custom view for this Fragment
// return inflater.Inflate(Resource.Layout.YourFragment, container, false);
return base.OnCreateView (inflater, container, savedInstanceState);
}
}
您可以通过 PreferenceFragment
.
执行此操作
创建一个 PreferenceFragment
子类 来显示你的偏好,我 copy/pasted 你的到一个文件 Resources/layout/MyPrefs.xml
然后加载那些Fragment
的 OnCreate
:
public class SettingsFragment : PreferenceFragment
{
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
AddPreferencesFromResource(Resource.Layout.MyPrefs);
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return base.OnCreateView(inflater, container, savedInstanceState);
}
}
现在创建一个 Activity
子类 来显示您的 ImageView
并提供一个容器来保存您的偏好:
[Activity(Label = "SettingsActivity")]
public class SettingsActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.PreferencesLayout);
FragmentManager.BeginTransaction().Add(Resource.Id.PreferencesContainer, new SettingsFragment()).Commit();
}
}
正在 Activity
中加载的布局将显示图像和您的偏好:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/PreferencesImage"
android:layout_width="match_parent"
android:layout_height="150dp"
android:src="@drawable/PreferenceImage" />
<FrameLayout
android:id="@+id/PreferencesContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/PreferencesImage"/>
</RelativeLayout>
现在只需创建一个 Intent
并启动 activity 以显示您的自定义首选项:
Intent intent = new Intent(this, typeof(SettingsActivity));
StartActivity(intent);
现在创建一个 Fragment 子类,它将显示您的 ImageView 并提供一个容器来保存您的首选项:
public class More : Android.Support.V4.App.Fragment
{
private MainActivity mainActivity;
public override void OnCreate (Bundle savedInstanceState)
{
base.OnCreate (savedInstanceState);
// Create your fragment here
}
public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Use this to return your custom view for this Fragment
// return inflater.Inflate(Resource.Layout.YourFragment, container, false);
//return base.OnCreateView (inflater, container, savedInstanceState);
return inflater.Inflate(Resource.Layout.MoreLayout,container,false);
}
[Obsolete("deprecated")]
public override void OnAttach (Android.App.Activity activity)
{
mainActivity = (MainActivity)activity;
base.OnAttach (activity);
}
public override void OnActivityCreated (Bundle savedInstanceState)
{
base.OnActivityCreated (savedInstanceState);
mainActivity.FragmentManager.BeginTransaction().Add(Resource.Id.PreferencesContainer, new ReferenceFragment()).Commit();
}
}
我想在 PreferenceScreen 中设置图片如下图 Settings
创建一个仅显示您的首选项的 PreferenceFragment 子类,我 copy/pasted 将您的首选项放入文件 Resources/layout/MyPrefs.xml 中,然后将它们加载到 Fragment 的 OnCreate 中:
public class ReferenceFragment : PreferenceFragment
{
public override void OnCreate (Bundle savedInstanceState)
{
base.OnCreate (savedInstanceState);
AddPreferencesFromResource (Resource.Xml.preferecesSettings);
// Create your fragment here
}
public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Use this to return your custom view for this Fragment
// return inflater.Inflate(Resource.Layout.YourFragment, container, false);
return base.OnCreateView (inflater, container, savedInstanceState);
}
}
您可以通过 PreferenceFragment
.
创建一个 PreferenceFragment
子类 来显示你的偏好,我 copy/pasted 你的到一个文件 Resources/layout/MyPrefs.xml
然后加载那些Fragment
的 OnCreate
:
public class SettingsFragment : PreferenceFragment
{
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
AddPreferencesFromResource(Resource.Layout.MyPrefs);
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return base.OnCreateView(inflater, container, savedInstanceState);
}
}
现在创建一个 Activity
子类 来显示您的 ImageView
并提供一个容器来保存您的偏好:
[Activity(Label = "SettingsActivity")]
public class SettingsActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.PreferencesLayout);
FragmentManager.BeginTransaction().Add(Resource.Id.PreferencesContainer, new SettingsFragment()).Commit();
}
}
正在 Activity
中加载的布局将显示图像和您的偏好:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/PreferencesImage"
android:layout_width="match_parent"
android:layout_height="150dp"
android:src="@drawable/PreferenceImage" />
<FrameLayout
android:id="@+id/PreferencesContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/PreferencesImage"/>
</RelativeLayout>
现在只需创建一个 Intent
并启动 activity 以显示您的自定义首选项:
Intent intent = new Intent(this, typeof(SettingsActivity));
StartActivity(intent);