相关疑难解决方法(0)

Android在FragmentPagerAdapter中的Fragment中设置TextView文本

这个让我疯了.基本上,我想创建一个ViewPager并添加几个Fragments.然后,所有我想做的事,它在一个设定值FragmentTextView秒.我可以添加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

8
推荐指数
2
解决办法
5万
查看次数

将项目添加到Fragment的操作栏选项菜单后跟随方向更改后崩溃

我正在使用ActionBarSherlockViewPagerIndicator将片段显示为选项卡.其中一个片段将项添加到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

7
推荐指数
1
解决办法
2162
查看次数

使用FragmentTransaction将数据发送到片段

我在我的片段类中调用它:

@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

7
推荐指数
1
解决办法
1万
查看次数

如果没有主构造函数,超类型初始化是不可能的

   **How can I solved it**
Run Code Online (Sandbox Code Playgroud)

// 如何解决 kot​​lin 片段中的此错误 *

open class First : Fragment() {
}
Run Code Online (Sandbox Code Playgroud)

// '图像 Fragment() 中显示的内容无法访问' https://i.stack.imgur.com/Rcgl5.png

android-fragments kotlin

6
推荐指数
2
解决办法
1万
查看次数

在Activity中实现多个警报对话框的最佳方法

  • 我有一个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.

android android-fragments android-alertdialog

5
推荐指数
2
解决办法
1万
查看次数

如何将光标从android活动发送到片段

实际上我知道如何发送从活动到片段的额外值,但我需要将联系人光标发送到片段,然后我将光标传递给光标适配器并在listview中显示数据请帮助我.

android cursor fragment

5
推荐指数
1
解决办法
3693
查看次数

交换卡时无法更新片段文本

我正在进行刷卡和卡片翻转功能,我正在使用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)

android fragment android-viewpager

5
推荐指数
1
解决办法
241
查看次数

方向改变后,片段对mActivity的引用变为null.片段状态维护无效

我的应用程序包含几个片段.到目前为止,我已将它们的引用存储在自定义的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)

android android-lifecycle android-fragments android-memory

4
推荐指数
1
解决办法
6872
查看次数

Android:在按钮点击时直接滚动/显示ViewPager中的特定页面

我想在按钮点击时显示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

4
推荐指数
1
解决办法
2438
查看次数

Xamarin.Android中的默认构造函数

我是使用Xamarin.Android进行Android开发的新手,我想了解如何解决下一个问题.

有时,从后台恢复我的Android应用程序后,我面临的下一个错误: Unable to find the default constructor on type MainMenuFragment.MainMenuFragment使用应用程序NavigationDrawerActivity允许用户在应用程序中不同的片段之间切换.

为了解决这个问题,我MainMenuFragment在下一个链接中添加了一个默认构造函数:

  • Xamarin限制 - 2.1.缺少构造函数
  • 添加了默认构造函数,应该解决问题.

    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)

default-constructor nullreferenceexception xamarin.android

4
推荐指数
1
解决办法
3124
查看次数