2014-08-28 134 views
-1

現在我在片段活動。現在我想從片段去活動。 這是我的代碼告訴我?如何從片段移動到活動

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),開始活動(I)類方法是正確的?

+1

是什麼問題你面對? – Apoorv 2014-08-28 14:16:12

+0

您可能想知道Android中的活動和片段是什麼,它們是如何相關的,並在提出這些問題之前與其他人合併。 http://developer.android.com/guide/components/fragments.html – 2014-08-28 14:39:09

+0

你可能想要在這裏重複的問題上多次執行代碼。但我已經在下面回答了。 – danny117 2014-08-28 18:45:37

回答

0

Fragment包含一個接口。活動實現接口。通過這種方式,片段可以與任何數量的實現該接口的活動一起使用。

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

你知道關於fragmentpager,pageradapter嗎? – 2015-05-15 16:20:08

+0

是的,我有一個關於onActivityResult的fragmentpager適配器的提示。 http://stackoverflow.com/questions/6147884/onactivityresult-not-being-called-in-fragment/27087414#27087414 – danny117 2015-05-21 12:43:04