每当我使用setonClickListener方法运行应用程序时,我都会收到错误.否则它工作正常.你能帮我吗?
package com.grozav.meetmeup;import com.grozav.meetmeup.R;import com.grozav.meetmeup.library.UserFunctions;import androID.app.Actionbar;import androID.app.Actionbar.Tab;import androID.app.Actionbar.TabListener;import androID.app.FragmentTransaction;import androID.content.Intent;import androID.os.Bundle;import androID.support.v4.app.Fragment;import androID.support.v4.app.FragmentActivity;import androID.support.v4.app.FragmentManager;import androID.support.v4.app.FragmentPagerAdapter;import androID.support.v4.vIEw.VIEwPager;import androID.support.v4.vIEw.VIEwPager.OnPagechangelistener;import androID.vIEw.VIEw;import androID.Widget.button;public class DashboardActivity extends FragmentActivity implements TabListener {UserFunctions userFunctions;VIEwPager vIEwPager;Actionbar actionbar;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.dashboard); userFunctions = new UserFunctions(); if (!userFunctions.isUserLoggedIn(getApplicationContext())) { // user is not logged in show login screen Intent login = new Intent(getApplicationContext(), LoginActivity.class); login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_top); startActivity(login); // Closing dashboard screen finish(); } vIEwPager = (VIEwPager) findVIEwByID(R.ID.pager); vIEwPager.setAdapter(new MyAdapter(getSupportFragmentManager())); vIEwPager.setonPagechangelistener(new OnPagechangelistener() { public voID onPageSelected(int arg0) { actionbar.setSelectednavigationItem(arg0); } public voID onPageScrolled(int arg0, float arg1, int arg2) { // Todo auto-generated method stub } public voID onPageScrollStateChanged(int arg0) { // Todo auto-generated method stub } }); actionbar = getActionbar(); actionbar.setNavigationMode(Actionbar.NAVIGATION_MODE_TABS); Actionbar.Tab tabA = actionbar.newTab(); tabA.setText("My Profile"); tabA.setTabListener(this); Actionbar.Tab tabB = actionbar.newTab(); tabB.setText("Meet Me Up"); tabB.setTabListener(this); actionbar.addTab(tabA); actionbar.addTab(tabB); /********************************* I GET THE ERROR HERE *********************************/ button logout = (button) findVIEwByID(R.ID.btnlogout); logout.setonClickListener(new VIEw.OnClickListener() { public voID onClick(VIEw vIEw) { Intent myIntent = new Intent(getApplicationContext(), LoginActivity.class); // fix VIEw.getContext() to getContext() startActivity(myIntent); // change to startActivity } });}public voID onTabReselected(Tab arg0, FragmentTransaction arg1) { // Todo auto-generated method stub}public voID onTabSelected(Tab arg0, FragmentTransaction arg1) { vIEwPager.setCurrentItem(arg0.getposition());}public voID onTabUnselected(Tab arg0, FragmentTransaction arg1) { // Todo auto-generated method stub}}class MyAdapter extends FragmentPagerAdapter {public MyAdapter(FragmentManager fm) { super(fm); // Todo auto-generated constructor stub}@OverrIDepublic Fragment getItem(int arg0) { Fragment fragment = null; if (arg0 == 0) { fragment = new FragmentA(); } if (arg0 == 1) { fragment = new FragmentB(); } return fragment;}@OverrIDepublic int getCount() { // Todo auto-generated method stub return 2;}}
dashboard.xml文件
<androID.support.v4.vIEw.VIEwPager xmlns:androID="http://schemas.androID.com/apk/res/androID"xmlns:tools="http://schemas.androID.com/tools"androID:ID="@+ID/pager"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"tools:context=".DashboardActivity" />
fragment_a.xml文件
<FrameLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"xmlns:tools="http://schemas.androID.com/tools"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"androID:paddingBottom="@dimen/activity_vertical_margin"androID:paddingleft="@dimen/activity_horizontal_margin"androID:paddingRight="@dimen/activity_horizontal_margin"androID:paddingtop="@dimen/activity_vertical_margin"tools:context=".FragmentA" ><linearLayout androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical" > <button androID:ID="@+ID/btnlogout" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:text="logout" /></linearLayout></FrameLayout>
这是我的第一个androID项目所以请不要太苛刻.非常感谢您的帮助!非常感谢你!
解决方法:
您需要在相应的片段中编写UI事件,试试这个,
public class FragmentA extends Fragment{ @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState) { VIEw vIEw=inflater.inflate(R.layout.fragment_a.xml, null); button logout = (button)vIEw.findVIEwByID(R.ID.btnlogout); logout.setonClickListener(new VIEw.OnClickListener() { public voID onClick(VIEw vIEw) { Intent myIntent = new Intent(getActivity(), LoginActivity.class); startActivity(myIntent); // change to startActivity } }); return vIEw; }}
总结 以上是内存溢出为你收集整理的android – 滑动布局中的Button SetOnClickListener NullPointerException全部内容,希望文章能够帮你解决android – 滑动布局中的Button SetOnClickListener NullPointerException所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)