2013-10-23 64 views
0

我多次使用片段中的按鈕,但由於某些原因,我不斷收到空指針。使用FragmentPagerAdapter在片段內部使用OnClickListener保持獲得NullPointerExceptions

我很茫然

FragmentActivity

public class WelcomeBase extends FragmentActivity { 

    FragmentAdapter mSectionsPagerAdapter; 
    ViewPager mViewPager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.welcome_base); 

     // Create the adapter that will return a fragment for each of the three 
     // primary sections of the app. 
     mSectionsPagerAdapter = new FragmentAdapter(getSupportFragmentManager(), getApplicationContext()); 

     // Set up the ViewPager with the sections adapter. 
     mViewPager = (ViewPager) findViewById(R.id.pager); 
     mViewPager.setAdapter(mSectionsPagerAdapter); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     return false; 
    } 


} 

片段

public class FragmentThree extends Fragment { 

    public static final String ARG_SECTION_NUMBER = "section_number"; 

    private String mContent = "Page3"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     if ((savedInstanceState != null) && savedInstanceState.containsKey(ARG_SECTION_NUMBER)) { 
      mContent = savedInstanceState.getString(ARG_SECTION_NUMBER); 
     } 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View root = inflater.inflate(R.layout.welcome_page3, container, false); 
     Button close = (Button) root.findViewById(R.id.close_helper); 
     close.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(); 
       intent.setClass(getActivity(), MainActivity.class); 
       startActivity(intent); 
      } 
     }); 
     return root; 
    } 

    @Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putString(ARG_SECTION_NUMBER, mContent); 
    } 
} 

這裏是片段的XML

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/transparent" 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp" 
    android:baselineAligned="false" 
    android:textAlignment="gravity" 
    android:gravity="center_vertical" 
    android:clickable="true"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Button" 
     android:id="@+id/welcome_close" 
     android:layout_gravity="center" /> 
</LinearLayout> 

空指針在這一行

close.setOnClickListener(new View.OnClickListener() { 

我已經嘗試實施從XML佈局onclick,我已經嘗試實施從fragmentactivity onclicklistener和沒有任何工作。世界上我能做什麼錯了?

進出口使用過Android Studio

+2

Button是否帶有xml佈局'welcome_page3.xml'的'close_helper'('close'按鈕)部分?如果是,請清理該項目。 –

+0

是的。使用佈局中的xml更新了問題。我已經跑了乾淨。 – Bignadad

回答

0

請檢查片段和XML文件中使用的關閉按鈕的ID。

+0

我非常抱歉問一個愚蠢的問題:(我討厭當我浪費了這麼多時間尋找答案,這是我忽略的一個簡單的錯誤,謝謝 – Bignadad

+0

好運...... –

相關問題