如何将onOptionsItemSelected项目ID从Main活动传递给另一个活动

时间:2015-08-19 06:37:01

标签: java android

我想将itemId从主活动传递到另一个活动。 现在我编写了如下代码,但我不想这样,只是我想在选择选项时将itemId从此活动传递到另一个。在另一个活动中,我将编写switch case选项。

这是我的代码:

 public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);


        switch(item.getItemId()) {
            case android.R.id.home:mDrawerToggle.onOptionsItemSelected(item);



            case R.id.action_settings:SettingsFragment fragmentS = new SettingsFragment();
                getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragmentS).commit();
                break;

    }

    return super.onOptionsItemSelected(item);
    }

3 个答案:

答案 0 :(得分:0)

使用Intents在活动之间传递数据。

Intent intent = new Intent(current.this, Next.class);
intent.putExtra("itemid", item.getItemId());
startActivity(intent);

在另一项活动中。

 String itemId= getIntent().getStringExtra("itemid");
 switch(itemId)
 {
   ...
  }

答案 1 :(得分:0)

从您的代码中,您似乎希望将值从片段传递到另一个片段。如果是这样,您应该编辑问题。它说你想把价值从一个活动转移到另一个活动。我是根据片段回答的。

这样做

switch(item.getItemId()) {
    case android.R.id.home:
        mDrawerToggle.onOptionsItemSelected(item);

    case R.id.action_settings:
        SettingsFragment fragmentS = new SettingsFragment();
        Bundle args = new Bundle();
        args.putInt("ItemID", item.getItemId());
        fragmentS.setArguments(args);
        getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragmentS).commit();
        break;
}

在其他片段中获取像这样的值

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    int itemId = getArguments().getInt("ItemID");    
    return inflater.inflate(R.layout.fragment, container, false);
}

答案 2 :(得分:0)

那么,您想要实际将数据传递给片段吗?

在对片段事务进行说明之前尝试添加:

Bundle bundle = new Bundle();
bundle.putInt("id", tem.getItemId());
fragmentS.setArguments(bundle);