我是新手使用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文件,因为我不需要为了正确打开它们。 如果我现在想要从这3个活动中的一个开启一个新活动,那么我需要在哪里编写代码才能使其工作?
答案 0 :(得分:2)
上下文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.
}
});
}
}
希望它有所帮助。!