自定义布局报空指针

404bugs 2014-09-16 02:43:50
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 获取不到是为什么啊?苦恼!!!
...全文
91 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
在xml中是怎样的呢?
404bugs 2014-09-16
  • 打赏
  • 举报
回复
引用 3 楼 dongyonggan 的回复:
View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.R.id.navigationLayoutID, null); R.id.navigationLayoutID作为一个单独的layout是不是没有包含在当前Activity对应的layout里。 个人想法,请参考
R.layout.R.id.navigationLayoutID 写法对吗?我试了不行,我这自定义布局是看一个demo写的,那个demo可以,我的就不行,找不到原因
dyonggan 2014-09-16
  • 打赏
  • 举报
回复
View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.R.id.navigationLayoutID, null); R.id.navigationLayoutID作为一个单独的layout是不是没有包含在当前Activity对应的layout里。 个人想法,请参考
404bugs 2014-09-16
  • 打赏
  • 举报
回复
09-16 15:01:09.920: E/AndroidRuntime(7752): FATAL EXCEPTION: main 09-16 15:01:09.920: E/AndroidRuntime(7752): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jhzhapp.wemedia/com.jhzh_mainui.LoginUIinfo}: java.lang.NullPointerException 09-16 15:01:09.920: E/AndroidRuntime(7752): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 09-16 15:01:09.920: E/AndroidRuntime(7752): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 09-16 15:01:09.920: E/AndroidRuntime(7752): at android.app.ActivityThread.access$600(ActivityThread.java:141) 09-16 15:01:09.920: E/AndroidRuntime(7752): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 09-16 15:01:09.920: E/AndroidRuntime(7752): at android.os.Handler.dispatchMessage(Handler.java:99) 09-16 15:01:09.920: E/AndroidRuntime(7752): at android.os.Looper.loop(Looper.java:137) 09-16 15:01:09.920: E/AndroidRuntime(7752): at android.app.ActivityThread.main(ActivityThread.java:5041) 09-16 15:01:09.920: E/AndroidRuntime(7752): at java.lang.reflect.Method.invokeNative(Native Method) 09-16 15:01:09.920: E/AndroidRuntime(7752): at java.lang.reflect.Method.invoke(Method.java:511) 09-16 15:01:09.920: E/AndroidRuntime(7752): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 09-16 15:01:09.920: E/AndroidRuntime(7752): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 09-16 15:01:09.920: E/AndroidRuntime(7752): at dalvik.system.NativeStart.main(Native Method) 09-16 15:01:09.920: E/AndroidRuntime(7752): Caused by: java.lang.NullPointerException 09-16 15:01:09.920: E/AndroidRuntime(7752): at com.jhzh_mainui.LoginUIinfo.init(LoginUIinfo.java:41) 09-16 15:01:09.920: E/AndroidRuntime(7752): at com.jhzh_mainui.LoginUIinfo.onCreate(LoginUIinfo.java:32) 09-16 15:01:09.920: E/AndroidRuntime(7752): at android.app.Activity.performCreate(Activity.java:5104) 09-16 15:01:09.920: E/AndroidRuntime(7752): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 09-16 15:01:09.920: E/AndroidRuntime(7752): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 09-16 15:01:09.920: E/AndroidRuntime(7752): ... 11 more
lionfresh 2014-09-16
  • 打赏
  • 举报
回复
异常信息发来看

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧