2013-02-12 64 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

相关问题