在 FragmentStatePagerAdapter 中显示 Android Toast 消息
Display Android Toast message in FragmentStatePagerAdapter
我正在尝试在 FragmentStatePagerAdapter
中显示 toast 消息,但我失败了。
我需要获取上下文以插入我的代码
Toast.makeText(, "The message", Toast.LENGTH_SHORT).show();
但我不能使用 getContext()
、getActivity()
,因为我没有任何 onCreateView
方法,而且我不知道任何其他获取上下文的方法。
这是我的 FragmentStatePagerAdapter
代码:
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.widget.Toast;
import com.mobaleghan.tablighcalendar.view.fragment.PrayerListViewContainerFragment;
import com.mobaleghan.tablighcalendar.view.fragment.TablighDataTabFragment;
public class TabbedKnowledgeAdapter extends FragmentStatePagerAdapter {
private int mNumOfTabs;
private TabLayout tabLayout;
public TabbedKnowledgeAdapter(FragmentManager fm, int NumOfTabs, TabLayout tabLayout) {
super(fm);
this.mNumOfTabs = NumOfTabs;
this.tabLayout = tabLayout;
}
@Override
public Fragment getItem(int position) {
//Some codes
Toast.makeText(, "the message", Toast.LENGTH_SHORT).show(); //I need context
//Some other codes
}
@Override
public int getCount() {
return mNumOfTabs;
}
}
那么如何在 FragmentStatePagerAdapter
中获取上下文?
在构造函数中传递上下文
Context context;
public TabbedKnowledgeAdapter(FragmentManager fm, Context ctx, int NumOfTabs, TabLayout tabLayout) {
super(fm);
this.mNumOfTabs = NumOfTabs;
this.tabLayout = tabLayout;
this.context = ctx;
}
并在您的 Toast 中传递此上下文。
使用应用程序的上下文
例如
@Override
public Fragment getItem(int position) {
//Some codes
Toast.makeText(((SampleApplication)getApplication()).getApplicationContext(), "the message", Toast.LENGTH_SHORT).show(); //I need context
//Some other codes
}
您可以使用:
tabLayout.getContext();
我正在尝试在 FragmentStatePagerAdapter
中显示 toast 消息,但我失败了。
我需要获取上下文以插入我的代码
Toast.makeText(, "The message", Toast.LENGTH_SHORT).show();
但我不能使用 getContext()
、getActivity()
,因为我没有任何 onCreateView
方法,而且我不知道任何其他获取上下文的方法。
这是我的 FragmentStatePagerAdapter
代码:
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.widget.Toast;
import com.mobaleghan.tablighcalendar.view.fragment.PrayerListViewContainerFragment;
import com.mobaleghan.tablighcalendar.view.fragment.TablighDataTabFragment;
public class TabbedKnowledgeAdapter extends FragmentStatePagerAdapter {
private int mNumOfTabs;
private TabLayout tabLayout;
public TabbedKnowledgeAdapter(FragmentManager fm, int NumOfTabs, TabLayout tabLayout) {
super(fm);
this.mNumOfTabs = NumOfTabs;
this.tabLayout = tabLayout;
}
@Override
public Fragment getItem(int position) {
//Some codes
Toast.makeText(, "the message", Toast.LENGTH_SHORT).show(); //I need context
//Some other codes
}
@Override
public int getCount() {
return mNumOfTabs;
}
}
那么如何在 FragmentStatePagerAdapter
中获取上下文?
在构造函数中传递上下文
Context context;
public TabbedKnowledgeAdapter(FragmentManager fm, Context ctx, int NumOfTabs, TabLayout tabLayout) {
super(fm);
this.mNumOfTabs = NumOfTabs;
this.tabLayout = tabLayout;
this.context = ctx;
}
并在您的 Toast 中传递此上下文。
使用应用程序的上下文
例如
@Override
public Fragment getItem(int position) {
//Some codes
Toast.makeText(((SampleApplication)getApplication()).getApplicationContext(), "the message", Toast.LENGTH_SHORT).show(); //I need context
//Some other codes
}
您可以使用:
tabLayout.getContext();