Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使我的按钮在片段中执行某些操作,ViewPager_Android_Fragment_Android Viewpager - Fatal编程技术网

Android 如何使我的按钮在片段中执行某些操作,ViewPager

Android 如何使我的按钮在片段中执行某些操作,ViewPager,android,fragment,android-viewpager,Android,Fragment,Android Viewpager,首先,我必须说我不擅长英语,而且对Android编程“完全陌生” 我想创建一个类似Android主屏幕的应用程序,它可以左右滑动以查看视图。在我的应用程序中,每个视图都有一个按钮来执行某些操作;现在我已经使用ViewPager和Fragments完成了滑动部分。当我运行我的应用程序时,它可以顺利地进入左右视图,但我找不到解决方案使每个视图中的按钮都能工作。我该怎么做?非常感谢您的每一个回答。以下是我的代码(我通过互联网上的示例对其进行了修改) 这是包含许多片段的主片段类 public class

首先,我必须说我不擅长英语,而且对Android编程“完全陌生”

我想创建一个类似Android主屏幕的应用程序,它可以左右滑动以查看视图。在我的应用程序中,每个视图都有一个按钮来执行某些操作;现在我已经使用ViewPager和Fragments完成了滑动部分。当我运行我的应用程序时,它可以顺利地进入左右视图,但我找不到解决方案使每个视图中的按钮都能工作。我该怎么做?非常感谢您的每一个回答。以下是我的代码(我通过互联网上的示例对其进行了修改)

这是包含许多片段的主片段类

public class LessonsActivity extends FragmentActivity{
/** maintains the pager adapter */
private PagerAdapter mPagerAdapter;

/*
 * (non-Javadoc)
 * 
 * @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle)
 */
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.setContentView(R.layout.viewpager_layout);
    // initialsie the pager
    this.initialisePaging();
}

/**
 * Initialise the fragments to be paged
 */
private void initialisePaging() {

    List<Fragment> fragments = new Vector<Fragment>();
    fragments.add(Fragment.instantiate(this, Lesson_1.class.getName()));
    fragments.add(Fragment.instantiate(this, Lesson_2.class.getName()));
    fragments.add(Fragment.instantiate(this, Lesson_3.class.getName()));
    fragments.add(Fragment.instantiate(this, Lesson_4.class.getName()));
    this.mPagerAdapter = new PagerAdapter(
            super.getSupportFragmentManager(), fragments);
    //
    ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
    pager.setAdapter(this.mPagerAdapter);

}
}

这是我的课

public class PagerAdapter extends FragmentPagerAdapter {

private List<Fragment> fragments;
/**
 * @param fm
 * @param fragments
 */
public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
    super(fm);
    this.fragments = fragments;
}
/* (non-Javadoc)
 * @see android.support.v4.app.FragmentPagerAdapter#getItem(int)
 */
@Override
public Fragment getItem(int position) {
    return this.fragments.get(position);
}

/* (non-Javadoc)
 * @see android.support.v4.view.PagerAdapter#getCount()
 */
@Override
public int getCount() {
    return this.fragments.size();
}
公共类PagerAdapter扩展了FragmentPagerAdapter{
私有列表片段;
/**
*@param-fm
*@param片段
*/
公共页面编辑器(碎片管理器fm,列出碎片){
超级(fm);
this.fragments=片段;
}
/*(非Javadoc)
*@see android.support.v4.app.FragmentPagerAdapter#getItem(int)
*/
@凌驾
公共片段getItem(int位置){
返回此.fragments.get(位置);
}
/*(非Javadoc)
*@see android.support.v4.view.PagerAdapter#getCount()
*/
@凌驾
public int getCount(){
返回此.fragments.size();
}

}

片段中,在方法
onCreateView()
中,您将返回特定
片段的视图。这意味着你可以操纵它。不要立即返回(膨胀的)视图,而是将其放入变量中并操纵该变量,如下所示:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {

    if (container == null) {
        ...
        return null;
    }

    LinearLayout mLinearLayout = (LinearLayout) inflater.inflate(R.layout.lessons1,
                    container, false);

    // note that we're looking for a button with id="@+id/myButton" in your inflated layout
    // Naturally, this can be any View; it doesn't have to be a button
    Button mButton = (Button) mLinearLayout.findViewById(R.id.myButton);
    mButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // here you set what you want to do when user clicks your button,
            // e.g. launch a new activity
        }
    });

    // after you've done all your manipulation, return your layout to be shown
    return mLinearLayout;
}

UH当我创建一个新的意图来启动一个新的活动(其中包含布局)时,当我运行时,它显示为一个对话框,而不是全屏布局。为什么?它不需要添加一个
视图。OnClickListener
而不是
OnClickListener
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {

    if (container == null) {
        ...
        return null;
    }

    LinearLayout mLinearLayout = (LinearLayout) inflater.inflate(R.layout.lessons1,
                    container, false);

    // note that we're looking for a button with id="@+id/myButton" in your inflated layout
    // Naturally, this can be any View; it doesn't have to be a button
    Button mButton = (Button) mLinearLayout.findViewById(R.id.myButton);
    mButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // here you set what you want to do when user clicks your button,
            // e.g. launch a new activity
        }
    });

    // after you've done all your manipulation, return your layout to be shown
    return mLinearLayout;
}