自定义布局报空指针
public class LoginUIinfo extends Activity {
NavigationLayout mNavigationLayout; // 自定义布局
LinearLayout linearLayout;
int mViewCount; // 自定义控件中子控件的个数
ImageView mImageView[]; // 底部的imageView
int mCurSel; // 当前选中的imageView
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置无标题创口
// requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.logininfo);
init();
}
private void init() {
// mNavigationLayout = new NavigationLayout(LoginUIinfo.this);
mNavigationLayout = (NavigationLayout) this.findViewById(R.id.navigationLayoutID);
linearLayout = (LinearLayout) findViewById(R.id.linerLayoutID);
// 得到子控件的个数
mViewCount = mNavigationLayout.getChildCount();
mImageView = new ImageView[mViewCount];
// 设置imageView
for (int i = 0; i < mViewCount; i++) {
// 得到LinearLayout中的子控件
mImageView[i] = (ImageView) linearLayout.getChildAt(i);
mImageView[i].setEnabled(true);// 控件激活
mImageView[i].setOnClickListener(new MOnClickListener());
mImageView[i].setTag(i);// 设置与view相关的标签
}
// 设置第一个imageView不被激活
mCurSel = 0;
mImageView[mCurSel].setEnabled(false);
mNavigationLayout.setOnViewChangeListener(new MOnViewChangeListener());
}
// 点击事件的监听器
private class MOnClickListener implements OnClickListener {
@Override
public void onClick(View v) {
int pos = (Integer) v.getTag();
System.out.println("pos:--" + pos);
// 设置当前显示的ImageView
setCurPoint(pos);
// 设置自定义控件中的哪个子控件展示在当前屏幕中
mNavigationLayout.snapToScreen(pos);
}
}
// 自定义控件中View改变的事件监听
private class MOnViewChangeListener implements OnViewChangeListener {
@Override
public void onViewChange(int view) {
System.out.println("view:--" + view);
if (view < 0 || mCurSel == view) {
return;
} else if (view > mViewCount - 1) {
// 当滚动到第五个的时候activity会被关闭
System.out.println("finish activity");
finish();
}
setCurPoint(view);
}
}
/**
* 设置当前显示的ImageView
*
* @param pos
*/
private void setCurPoint(int pos) {
if (pos < 0 || pos > mViewCount - 1 || mCurSel == pos)
return;
// 当前的imgaeView将可以被激活
mImageView[mCurSel].setEnabled(true);
// 将要跳转过去的那个imageView变成不可激活
mImageView[pos].setEnabled(false);
mCurSel = pos;
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
mNavigationLayout 获取不到是为什么啊?苦恼!!!