2015-08-19 130 views
0

我想將itemId從主活動傳遞到另一活動。 現在我寫了下面的代碼,但我不想要這樣,只是我希望從這個活動傳遞itemId到另一個選項時。在另一項活動中,我將寫入開關盒選項。如何將onOptionsItemSelected項目ID從主活動傳遞到另一活動

這裏我的代碼:

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); 
    } 
+0

你嘗試'Intents'? –

+0

從你的代碼看來,你想要從一個片段傳遞值到另一個片段。如果是這樣,你應該編輯這個問題。它說你想把價值從一個活動傳遞給另一個活動。我按照片段回答。 – Rohit5k2

回答

0

使用意圖的活動之間傳遞數據。

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

而在其他活動。

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

謝謝......我把這個例子放在switch case裏面。打破;但我得到錯誤 – Razul

+0

正如其他人所說,你想使用片段,我的將是活動。 –

+0

我想要你給的..但我有問題..請閱讀我上面的評論 – Razul

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); 
} 
0

所以,你想將數據傳遞到實際片段的價值?

嘗試strating片段交易之前加入:

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