这是我的方法,需要一个Activity作为参数。
public View getContentView(Activity ac){
ViewGroup view = (ViewGroup)ac.getWindow().getDecorView();
FrameLayout content = (FrameLayout)view.findViewById(android.R.id.content);
return content.getChildAt(0);
}
放OneActivity.class
或OneActivity.this
时,会遇到错误:
MainActivity中的getContentView(android.app.Activity)无法应用于(java.lang.Class)。
oneView=getContentView();
我的整个代码:
public class MainActivity extends AppCompatActivity{
private View oneView;
private View twoView;
private View threeView;
private ArrayList<View> views;
private ViewPager mViewPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
views = new ArrayList<View>();
mViewPager = (ViewPager)findViewById(R.id.viewpager_main);
initView();
addViews();
PagerAdapter mPagerAdapter = new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return views.size();
}
};
mViewPager.setAdapter(mPagerAdapter);
}
/**
* convert acitivity to corresponding view
*/
public void initView(){
oneView=getContentView(OneActivity);
twoView=getContentView(TwoActivity);
threeView=getContentView(ThreeActivity);
}
/**
* add views into list
*/
public void addViews(){
views.add(oneView);
views.add(twoView);
views.add(threeView);
}
public View getContentView(Activity ac){
ViewGroup view = (ViewGroup)ac.getWindow().getDecorView();
FrameLayout content = (FrameLayout)view.findViewById(android.R.id.content);
return content.getChildAt(0);
}
}
我的想法是使用ViewPager实现侧滑以切换活动。
提前致谢!
答案 0 :(得分:1)
它不适用于.class,你需要一个实例。 .t仅在从OneActivity中调用它时才有效。老实说,我问你为什么需要这个 - 如果你在活动本身,有更简单的方法(在充气后保存并在需要的地方通过)。如果您不参加活动,那么您不应该接触该活动的观点。
答案 1 :(得分:0)
尝试使用Context代替活动
df1.assign(**dict(df2.iteritems()))
A B C D
0 2 1 3 2
1 3 1 8 2
2 1 2 3 9