特定のビューページのフラグメントを更新します。私はあなたが活動を再現する必要はないと思うか、断片を作り直してください。
adapter.NotifyDataSetChanged()
を使用してフラグメントを更新してみてください。
がフラグメントviewpager sepcificを更新するsetpsに従ってください:
1.
class MyHandler : Handler
{
public override void HandleMessage(Message msg)
{
if (msg.What == 1)
{
mainAdapter.NotifyDataSetChanged();
}
}
}
2.送信メッセージあなたは50番目のフラグメントに到達
class PageChangeListen : Java.Lang.Object, IOnPageChangeListener
{
public void OnPageScrolled(int position, float positionOffset, int positionOffsetPixels)
{
}
public void OnPageScrollStateChanged(int state)
{
}
public void OnPageSelected(int position)
{
if (position == 1)
{
Message msg = new Message();
msg.What = 1;
new MyHandler().SendMessage(msg);
}
}
}
ハンドラを作成します。
3.メインスレッドでは、メッセージをivedフラグメント
public interface Updateable
{
void update();
}
public class MyFragment : Android.Support.V4.App.Fragment, Updateable
{
TextView questionBox;
public MyFragment() { }
public static MyFragment NewInstance(String question)
{
MyFragment fragment = new MyFragment();
return fragment;
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.Inflate(Resource.Layout.MyFragmentLayout, container, false);
questionBox = (TextView)view.FindViewById(Resource.Id.textView1);
return view;
}
public void update()
{
questionBox.Text = "Mike Update";
}
}
5.フラグメントがコールGetItemPosition
によりUIを更新するための更新インタフェースを追加NotifyDataSetChanged
4を呼び出します。私の例では
public override int GetItemPosition(Object @object)
{
MyFragment f = (MyFragment)@object;
System.Console.WriteLine(f.Id + "" + f.Resources + "" + f.Tag);
if (f != null)
{
f.update();
}
return base.GetItemPosition(@object);
}
私は、テキスト「マイク・アップデート」で2ページを更新しています。更新条件と内容を変更することができます。
スクリーンショット:
git source code is here
'パブリック静的MyFragment NewInstanceメソッド(int型playId)'ここxamarinアンドロイドフラグメントで同じ機能です。 –
マイク、そうです。私はこのメソッドを使って新しいフラグメントを開始しました。しかし、私は既にビューのページャにフラグメントがある場合、解決策を探しています。ユーザーが50番目のフラグメントに達すると、別のパラメータで呼び出す方法 – guruitengineer
'fragmentTransaction.Replace(Android.Resource.Id.Content、details);'同じリソースIDを持つフラグメントトランザクションでコール置換とコミット機能。フラグメントをリロードします。 –