2013-02-12 20 views
-1

當我試圖將一個活動連接到一個片段類時,我收到空指針錯誤.. 活動類是一個列表活動,當點擊特定列表時,應該打開片段類。 .ANY主體具有樣本代碼或解決方案可以提供me..my片段類名稱爲Termfragment ..當選擇列表項時出現java.lang.NullPointerException錯誤

我在listactivity類中使用此代碼:

  public class HelpActivity extends ListActivity { 


Context myContext=this; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    String[] helplist = getResources().getStringArray(R.array.helplist); 
    this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_view, R.id.label, helplist)); 
    ListView lv = getListView(); 
    lv.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
       TermFragment mytermfragment = new TermFragment(myContext); 
       getSupportFragmentManager().beginTransaction().add(R.id.mytermfragment_container, mytermfragment).commit(); 
       mytermfragment.show(getSupportFragmentManager(),"mytermfragment"); 


      } 
     }); 

} 
} 

TermFragment類:

  public class TermFragment extends DialogFragment implements DialogInterface.OnClickListener { 
private Context termContext; 
private AlertDialogListener mListener; 


public TermFragment(Context context) { 
    termContext=context; 
} 


public interface AlertDialogListener 
{ 
    public void onDialogPositiveClick(DialogFragment dialogFragment); 
     } 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 

    Log.i("help","onCreateDialog"); 
    AlertDialog.Builder builder = new AlertDialog.Builder(termContext); 

    LayoutInflater inflater = getActivity().getLayoutInflater(); 

    builder.setTitle("Terms"); 

    builder.setView(inflater.inflate(R.layout.terms_view, null)); 

    builder.setPositiveButton("I AGREE", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      mListener.onDialogPositiveClick(TermFragment.this); 
     } 
    }); 



    AlertDialog alertDialog = builder.create(); 
    Log.i("alert","alertDialog Created"); 
    return alertDialog; 
} 
@Override 
public void onClick(DialogInterface dialog, int which) { 
    // TODO Auto-generated method stub 

} 

}

+0

TermFragment只是一個片段類(比如說擴展片段)...?如果是這樣的話,您將需要使用「TermFragment」或FragmentActivity的活動。 – 2013-02-12 13:22:01

回答

3

您不能啓動片段,如啓動一個活動,你可以顯示/添加它在一個視圖或顯示其作爲dialogFragment幾個選項, 在佈局視圖中添加片段

 ExampleFragment mFragment = new ExampleFragment(); // ExampleFragment is your fragment 
     FragmentTransaction ft = getFragmentManager().beginTransaction(); 
     ft.add(R.id.fragmentContainer, mFragment).commit(); // fragmentContainer is id of your view in your layout 

在onitemClickListener

執行上述任務,爲了使用DialogFragments檢查這個http://android-developers.blogspot.com/2012/05/using-dialogfragments.html

TermFragment frag= new TermFragment(); 
    frag.show(fm, "fragment_tag"); 
+0

thankx for reply..i已經完成,因爲你說,但我收到空行指針異常錯誤的行:FragmentTransaction ft = getFragmentManager()。beginTransaction(); – user 2013-02-13 07:26:53

+0

檢查http://stackoverflow.com/questions/13213693/getfragmentmanager-returns-null-with-android-support-v4-app-dialogfragment-su – baboo 2013-02-13 07:40:46

+0

還http://stackoverflow.com/questions/10477997/difference- between-activity-and-fragmentactivity – baboo 2013-02-13 08:02:56

相關問題