1

私はNavigation Drawerで作業しており、誰かがスライドメニューにある項目をクリックしたときにtestActivity.javaクラスを呼び出したいと思っています。これをtestActivity.javaに置き換えたい

ここに私の MainActivity.java があります

 public class MainActivity extends FragmentActivity {
final String[] data ={"one","two","three"};
final String[] fragments ={
        "core.layout.FragmentOne",
        "core.layout.FragmentTwo",
        "core.layout.FragmentThree"};
@Override
protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

     ArrayAdapter<String> adapter = new ArrayAdapter<String>    (getActionBar().getThemedContext(), android.R.layout.simple_list_item_1, data);

     final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout);
     final ListView navList = (ListView) findViewById(R.id.drawer);
     navList.setAdapter(adapter);
     navList.setOnItemClickListener(new OnItemClickListener(){
             @Override
             public void onItemClick(AdapterView<?> parent, View view, final int pos,long id){
                     drawer.setDrawerListener( new DrawerLayout.SimpleDrawerListener(){
                             @Override
                             public void onDrawerClosed(View drawerView){
                                     super.onDrawerClosed(drawerView);
                                     FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
                                     tx.replace(R.id.main, Fragment.instantiate(MainActivity.this, fragments[pos]));
                                     tx.commit();
                             }
                     });
                     drawer.closeDrawer(navList);
             }
     });
     FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
     tx.replace(R.id.main,Fragment.instantiate(MainActivity.this, fragments[0]));
     tx.commit();
}

}

これが私の FragmentOne.java calss です。このような同じコードを持つ他のすべての FragmentTwo および FragmentThree.java クラス。

      public class FragmentOne extends Fragment {


public static Fragment newInstance(Context context) {
    FragmentOne f = new FragmentOne();

    return f;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
   ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment_one, null);

    View view = inflater.inflate(R.layout.fragment_one,container, false);

   return root;


}

}

これは私のtestActivity.Javaクラスです

   public class testActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.test);


}

}

4

1 に答える 1

3

フラグメントでは、getActivity() を使用して親の FragmentActivity インスタンスにアクセスできます。そのインスタンスはアクティビティであるため、それを使用して別のアクティビティを簡単に呼び出すことができます。

Intent myIntent = new Intent((ParentActivity)getActivity(), YourOtherActivity.class);
(ParentActivity)getActivity().startActivity(myIntent); 
于 2013-08-30T03:53:49.637 に答える