2014-08-28 4 views
-1

сейчас я в активности фрагментов. и теперь я хочу перейти к Activity из фрагмента. Вот мой код, скажите мне?как перейти от фрагмента к активности

public class People extends BaseFragment implements OnClickListener { 
    static String name; 
    ListView listview; 
    TextView et; 
    public static String username; 
    static public List<SuccessStoreyItem> success_list3 = new ArrayList<SuccessStoreyItem>(); 
    public static int people_index ; 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 

     View view= inflater.inflate(R.layout.home,null); 
     ParserResult pr = new ParserResult(); 
     Button b=(Button) view.findViewById(R.id.home1); 
     listview = (ListView)view.findViewById(R.id.lv_home); 

     et=(TextView) view.findViewById(R.id.editText1); 
     b.setOnClickListener(this); 

     if(ParserResult.success_list2.size() != 0){ 
      success_list3 = ParserResult.success_list2; 
     } 

     listview.setAdapter(new Adapters(success_list3 ,MainActivity.mainactivity_context)); 
     ParserResult.success_list2 = new ArrayList<SuccessStoreyItem>(); 


     listview.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       // TODO Auto-generated method stub 
//    Toast.makeText(getActivity(), "fuck you", Toast.LENGTH_LONG).show(); 
       Profile frg3 = new Profile(); 
       Bundle b3 = new Bundle(); 
       username = ""; 
       username = success_list3.get(position).getStorey_id(); 
       Intent i = new Intent(MainActivity.mainactivity_context,Profile_otheruser.class); 
       startActivity(i); 
//    b3.putString("username", username); 
//    b3.putInt("index_people", position); 
       people_index = position; 
       frg3.setArguments(b3); 
//    ((MainActivity)getActivity()).launchNewFragment(frg3, R.id.tab2); 
//    Toast.makeText(getActivity(), "Name :"+name ,1).show(); 
      } 
     }); 



     return view; 
    } 
    public void onListItemClick(ListView l, View v, int position, long id) { 
     //Do your stuff.. 

    } 
    @Override 
    public void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 
     setTitle(R.string.Home); 
    } 
    @Override 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     name=et.getText().toString(); 
     Bundle bundle = new Bundle(); 
     bundle.putString("Name", name); 

    Toast.makeText(getActivity(), "Name :"+name ,1).show(); 


     //((MainActivity)getActivity()).launchNewFragment(new Home2(),R.id.tab1); 
    } 


} 

текст: сказать мне, что моя, что мой метод (контекст, activity.class), начать деятельность (я) метод класса является правильной?

+1

Какие проблемы являются вы сталкиваетесь? – Apoorv

+0

Возможно, вы захотите узнать, что такое активность и фрагмент в Android, как они соотносятся и объединяются друг с другом, прежде чем задавать такие вопросы. http://developer.android.com/guide/components/fragments.html –

+0

, возможно, вы захотите выполнить код из активности из фрагмента, который во много раз повторяется дублированным вопросом. Но я ответил на это ниже. – danny117

ответ

0

Фрагмент содержит интерфейс. Активность реализует интерфейс. Таким образом, фрагмент может использоваться с любым количеством действий, реализующих интерфейс.

public class SettingMap extends Fragment implements OnCheckedChangeListener, 
    android.widget.CompoundButton.OnCheckedChangeListener { 



public interface BestRidesSettingsDialogListener { 
    // change the map type 
    void onMapSettingsChange(int mapType); 
} 

где-то в фрагменте безопасно проверить деятельность реализован интерфейс, а затем выполнить код на активности

Activity a = getActivity(); 
    BestRidesSettingsDialogListener activity = (BestRidesSettingsDialogListener.class.isAssignableFrom(a 
      .getClass())) ? (BestRidesSettingsDialogListener) a : null; 
    if (activity != null) { 
     activity.onMapSettingsChange(mapType); 
    } 

активность реализует интерфейс

public class KmlReader extends ActionBarActivity implements 
    BestRidesFollowDialogListener { 


@Override 
public void onMapSettingsChange(int mapType) { 
    if (mMap != null) { 
     mMap.setMapType(mapType); 
    } 
} 
+0

Знаете ли вы о fragpager, pageradapter? –

+0

Да, у меня есть один совет для адаптера фрагментатора для onActivityResult. http://stackoverflow.com/questions/6147884/onactivityresult-not-being-called-in-fragment/27087414#27087414 – danny117

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