如何在 activity 的 Android 中使用 Intent?

How to use Intent in Android from activity?

我在尝试使用意图从 Android 中的 OnItemClicked 移动时遇到问题。我在许多网站上搜索了解决方案,但我仍然不断收到错误。我想要做的是在按下 navigationDrawers 按钮时从 MenuActivity 转到 MainActivity "Home"。

这是我的示例代码。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);
        menu = new String[]{"Home","And","Win","nux","berry P","Word","Vis","Co"};
        dLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        dList = (ListView) findViewById(R.id.left_drawer);
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,menu);
        dList.setAdapter(adapter);
    dList.setSelector(android.R.color.holo_blue_dark);
        dList.setOnItemClickListener(new OnItemClickListener(){
      @Override
      public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
        dLayout.closeDrawers();
        Bundle args = new Bundle();
        Fragment detail = null;
        args.putString("Menu", menu[position]);
        if(menu[position].equals("Home")){
            Intent i = new Intent(MenuActivity.this,MainActivity.class);
            startActivity(i);
            finish();
        }else{
         detail = new DetailFragment();
        }
        detail.setArguments(args);
          FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.content_frame, detail).commit();
      }
        });

finish() 不会立即退出,因此如果您不在它之后调用 return,将执行剩余的代码。试试这个:

if (menu[position].equals("Home")) {
    Intent i = new Intent(MenuActivity.this, MainActivity.class);
    startActivity(i);
    finish();
    return;
} else {
    detail = new DetailFragment();
}