首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >继续使用OnClickListener在片段中使用FragmentPagerAdapter获取FragmentPagerAdapter

继续使用OnClickListener在片段中使用FragmentPagerAdapter获取FragmentPagerAdapter
EN

Stack Overflow用户
提问于 2013-10-23 02:52:35
回答 1查看 680关注 0票数 0

我有很多次在片段中的按钮,但出于某种原因,我总是得到空指针。

我不知所措

FragmentActivity

代码语言:javascript
复制
public class WelcomeBase extends FragmentActivity {

    FragmentAdapter mSectionsPagerAdapter;
    ViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.welcome_base);

        // Create the adapter that will return a fragment for each of the three
        // primary sections of the app.
        mSectionsPagerAdapter = new FragmentAdapter(getSupportFragmentManager(), getApplicationContext());

        // Set up the ViewPager with the sections adapter.
        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mSectionsPagerAdapter);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return false;
    }


}

片段

代码语言:javascript
复制
public class FragmentThree extends Fragment {

    public static final String ARG_SECTION_NUMBER = "section_number";

    private String mContent = "Page3";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if ((savedInstanceState != null) && savedInstanceState.containsKey(ARG_SECTION_NUMBER)) {
            mContent = savedInstanceState.getString(ARG_SECTION_NUMBER);
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View root = inflater.inflate(R.layout.welcome_page3, container, false);
        Button close = (Button) root.findViewById(R.id.close_helper);
        close.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(getActivity(), MainActivity.class);
                startActivity(intent);
            }
        });
        return root;
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString(ARG_SECTION_NUMBER, mContent);
    }
}

以下是xml片段

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/transparent"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:baselineAligned="false"
    android:textAlignment="gravity"
    android:gravity="center_vertical"
    android:clickable="true">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/welcome_close"
        android:layout_gravity="center" />
</LinearLayout>

空指针位于这一行。

代码语言:javascript
复制
    close.setOnClickListener(new View.OnClickListener() {

我尝试从xml布局中实现onclick,尝试从片段活动实现onclicklistener,但没有任何效果。我到底做错了什么?

我在使用Android

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-23 03:43:20

请检查片段和xml文件中使用的关闭按钮的id。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19531938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档