2013-02-12 2 views
-1

Я получаю ошибку с нулевым указателем, когда пытаюсь подключить действие к классу фрагментов. Класс активности - это активность списка, и при нажатии на определенный список класс фрагмента должен открыться. .any тело имеет образец кода или решение может обеспечить me..my фрагмент имя класса Termfragment ..java.lang.NullPointerException error при выборе элемента списка

я использовал этот код в моем 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

Is TermFragment - это только класс фрагментов (скажем, расширяет фрагмент) ... ?? Если это так, вам понадобится операция с использованием «TermFragment» или FragmentActivity. –

ответ

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 для ответа..i сделали как u сказал, но я получаю ошибку исключения указателя на строку в строке: FragmentTransaction ft = getFragmentManager(). BeginTransaction(); – user

+0

Проверьте http://stackoverflow.com/questions/13213693/getfragmentmanager-returns-null-with-android-support-v4-app-dialogfragment-su – baboo

+0

, а также http://stackoverflow.com/questions/10477997/difference- между-activity-and-fragmentactivity – baboo

Смежные вопросы