这个让我疯了.基本上,我想创建一个ViewPager并添加几个Fragments.然后,所有我想做的事,它在一个设定值Fragment的TextView秒.我可以添加Fragments,它们附加,但当我去第findViewById()一个TextViews中的一个时,Fragment它会抛出一个NullPointerException.我,在我的生活中,无法弄清楚为什么.
到目前为止,这是我的代码,请告诉我是否需要更多代码.
public class SheetActivity extends FragmentActivity {
// /////////////////////////////////////////////////////////////////////////
// Variable Declaration
// /////////////////////////////////////////////////////////////////////////
private ViewPager viewPager;
private PagerTitleStrip titleStrip;
private String type;
private FragmentPagerAdapter fragmentPager; //UPDATE
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sheet);
viewPager = (ViewPager) findViewById(R.id.viewPager);
titleStrip = (PagerTitleStrip) findViewById(R.id.viewPagerTitleStrip);
// Determine which type of sheet to create
Intent intent = getIntent();
this.type = intent.getStringExtra("type");
FragmentManager manager = …Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager android-fragmentactivity
我正在使用ActionBarSherlock和ViewPagerIndicator将片段显示为选项卡.其中一个片段将项添加到ActionBar:
private String[] mapNames;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
// init an String array `mapNames` which is used when populating submenu
// ...
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.fragment_maps, menu);
SubMenu mapNamesMenu = menu.findItem(R.id.map_names).getSubMenu();
mapNamesMenu.clear();
for (int i=0; i<mapNames.length; i++) {
mapNamesMenu.add(1, i, Menu.NONE, mapNames[i]);
}
super.onCreateOptionsMenu(menu, inflater);
}
Run Code Online (Sandbox Code Playgroud)
在res/menu/fragment_maps.xml我有
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/map_names"
android:title="Maps"
android:icon="@drawable/maps_32"
android:showAsAction="always|withText">
<menu>
<item android:id="@+id/placeholder_maps" />
</menu>
</item>
</menu> …Run Code Online (Sandbox Code Playgroud) android android-layout android-fragments actionbarsherlock viewpagerindicator
我在我的片段类中调用它:
@OnClick(R.id.blockedLinkLayout)
public void onBlockedClick(){
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content, new SettingsBlockedUsersFragment(), FRAGMENT_TAG);
ft.commit();
}
Run Code Online (Sandbox Code Playgroud)
它只是用选择的片段替换我当前的片段.
我的问题是,如何String使用FragmentTransaction从我的父片段向我的子片段发送一些数据(例如值)?
android send android-fragments android-bundle fragment-transitions
**How can I solved it**
Run Code Online (Sandbox Code Playgroud)
// 如何解决 kotlin 片段中的此错误 *
open class First : Fragment() {
}
Run Code Online (Sandbox Code Playgroud)
// '图像 Fragment() 中显示的内容无法访问' https://i.stack.imgur.com/Rcgl5.png
我有一个Activity3 Fragments,现在每个片段有2 ToggleButtons(总共六个按钮).
AlertDialog在每次按钮点击时向用户显示An .
每个按钮执行一些不同的操作,因此警报对话框的布局/视图彼此不同,因此对话框的正按钮单击也不同,而负按钮单击几乎相同.
我已经在Activity中的onButtonPressed方法中实现了逻辑
onButtonPressed(View v){
switch(v.getId()){
case R.id.button1:
// create and show an AlertDialog
break;
}
case R.id.button2:
// create and show an AlertDialog
break;
}
case R.id.button3:
// create and show an AlertDialog
break;
}
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
这导致了许多重复的代码行,这不是AFAIK最好的东西.我愿意知道我是否应该保持当前的实现,或者创建一个包装类来创建和显示AlertDialogs.
实际上我知道如何发送从活动到片段的额外值,但我需要将联系人光标发送到片段,然后我将光标传递给光标适配器并在listview中显示数据请帮助我.
我正在进行刷卡和卡片翻转功能,我正在使用ViewPager和片段.
我的问题是我无法在片段内更新TextView,因为我从左到右或从右到左刷卡,但是当我翻转卡片时它会更新UI.我试过通过互联网提供的所有东西,但没有一个解决方案适合我.
我关注此链接 https://github.com/jamesmccann/android-view-pager-cards
这是我的代码
public class CardContainerFragment extends Fragment {
private boolean cardFlipped = false;
static TextView textview;
public CardContainerFragment() {
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_card_container, container, false);
LinearLayout ll = (LinearLayout)rootView.findViewById(R.id.layout);
rootView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
flipCard();
}
});
getChildFragmentManager()
.beginTransaction()
.add(R.id.container, new CardFrontFragment())
.commit();
Message msg = handler.obtainMessage();
msg.arg1 = 1;
handler.sendMessage(msg);
return rootView;
}
final Handler handler = new Handler(){
@Override …Run Code Online (Sandbox Code Playgroud) 我的应用程序包含几个片段.到目前为止,我已将它们的引用存储在自定义的Application对象中,但我开始认为我做错了.
当我意识到我的片段对mActivity的所有引用在方向改变后变为null时,我的问题就开始了.因此,当我在方向更改后调用getActivity()时,会抛出NullPointerException.我已经检查过我的片段的onAttach()在调用getActivity()之前被调用,但它仍然返回null.
以下是我的MainActivity的剥离版本,它是我的应用程序中唯一的活动.
public class MainActivity extends BaseActivity implements OnItemClickListener,
OnBackStackChangedListener, OnSlidingMenuActionListener {
private ListView mSlidingMenuListView;
private SlidingMenu mSlidingMenu;
private boolean mMenuFragmentVisible;
private boolean mContentFragmentVisible;
private boolean mQuickAccessFragmentVisible;
private FragmentManager mManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* Boolean variables indicating which of the 3 fragment slots are visible at a given time
*/
mMenuFragmentVisible = findViewById(R.id.menuFragment) != null;
mContentFragmentVisible = findViewById(R.id.contentFragment) != null;
mQuickAccessFragmentVisible = findViewById(R.id.quickAccessFragment) != null;
if(!savedInstanceState != null) {
if(!mMenuFragmentVisible && mContentFragmentVisible) { …Run Code Online (Sandbox Code Playgroud) 我想在按钮点击时显示ViewPager的特定页面.它正在工作,但滚动到该特定页面并不顺利,即假设我在页面号.1但是如果我想去第 5,其他页面2,3,4也滚动.我只想滚动到该特定页面.怎么做.我使用了以下代码,请看一下:
下面的代码是FragmentActivity:
public class ScreenSlideFragmentActivity extends FragmentActivity implements SlidingPageInterface{
private static final int NUM_PAGES = 6;
private ViewPager mPager;
private PagerAdapter mPagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen_slide);
mPager = (ViewPager) findViewById(R.id.pager);
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
mPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
}
});
}
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(android.support.v4.app.FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
return ScreenSlidePageFragment.create(position, NUM_PAGES, ScreenSlideFragmentActivity.this);
}
@Override
public int getCount() { …Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager fragmentpageradapter android-fragmentactivity
我是使用Xamarin.Android进行Android开发的新手,我想了解如何解决下一个问题.
有时,从后台恢复我的Android应用程序后,我面临的下一个错误:
Unable to find the default constructor on type MainMenuFragment.在MainMenuFragment使用应用程序NavigationDrawerActivity允许用户在应用程序中不同的片段之间切换.
为了解决这个问题,我MainMenuFragment在下一个链接中添加了一个默认构造函数:
public class MainMenuFragment : DialogFragment
{
readonly NavigationDrawerActivity navigationDrawer;
#region Constructors
public MainMenuFragment () {} // Default constructor...
public MainMenuFragment (NavigationDrawerActivity navigationDrawer, IMenuType launchMenu = null)
{
if (navigationDrawer == null)
throw new ArgumentNullException ("navigationDrawer");
this.navigationDrawer = navigationDrawer;
...
Fragment UpdateTopFragmentForCurrentMenu (Fragment newMenuRootFragment = null)
{
Fragment currentMenuRootFragment = navigationDrawer.CurrentFragment; // issued line.
Run Code Online (Sandbox Code Playgroud)但是现在在将来的某个时候,MainMenuFragment使用其默认构造函数初始化,并且在第一次尝试访问其navigationDrawer时,它会抛出System.NullReferenceException:
System.NullReferenceException: …Run Code Online (Sandbox Code Playgroud)