繁体   English   中英

从Viewpager中的活动开始新的活动吗?

[英]Start new activity from activity in viewpager?

我不熟悉使用Viewpager在活动之间滑动,目前已将其设置为:

MainActivity.Java:

    package com.example.elfho.nceatracker;

    import android.support.v4.view.ViewPager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;

    public class MainActivity extends AppCompatActivity {

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

            ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
            viewPager.setAdapter(new CustomPagerAdapter(this));

        }
    }

ModelObject.Java:

public enum ModelObject {

        ONE(R.string.level1, R.layout.activity_level1),
        TWO(R.string.level2, R.layout.activity_level2),
        THREE(R.string.level3, R.layout.activity_level3);

        private int mTitleResId;
        private int mLayoutResId;

        ModelObject(int titleResId, int layoutResId) {
            mTitleResId = titleResId;
            mLayoutResId = layoutResId;
        }

        public int getTitleResId() {
            return mTitleResId;
        }

        public int getLayoutResId() {
            return mLayoutResId;
        }
     }

CustomPagerAdapter.java:

public enum ModelObject {

ONE(R.string.level1, R.layout.activity_level1),
TWO(R.string.level2, R.layout.activity_level2),
THREE(R.string.level3, R.layout.activity_level3);

private int mTitleResId;
private int mLayoutResId;

ModelObject(int titleResId, int layoutResId) {
    mTitleResId = titleResId;
    mLayoutResId = layoutResId;
}

public int getTitleResId() {
    return mTitleResId;
}

public int getLayoutResId() {
    return mLayoutResId;
 }

}

这使应用程序在我的三个活动(activity_level1,activity_level2和activity_level3)之间滑动。 但是,我没有为这些活动创建特定的Java文件,因为不需要正确地打开它们。 如果我现在想从这三个活动之一中打开一个新活动,那么我需要在哪里编写代码来完成这项工作?

上下文https://developer.android.com/reference/android/content/Context.html 在这里,您可以了解为什么我们使用上下文。

像这样,您可以调用另一个活动。

public class CustomPagerAdapter extends Your_adapter_method {
 private Context context; 

 public CustomPagerAdapter(Context context) {
      this.context = context;     //Main Activity Context
 }

 public View getView(...){
     View v;
     v.setOnClickListener(new OnClickListener() {
         void onClick() {
              Intent intent= new Intent(context, secondactivity.class);
              intent.putextra("your_extra","your_class_value");
              context.startActivity(intent); //Must use context to start activity.
         }
     });
 }
}

希望能帮助到你。!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM