2016-06-13 36 views
0

我有一個名爲錢包的活動,並有一個名爲CRechargeMain的活動,它添加了兩個名爲「Mobile」,「Data」的frgament;我想在錢包屏幕中使用Listview,其中的情況爲0:當我點擊I想去CRechargeMain並顯示「移動」選項卡,並在情況1:當我點擊我想去CRechareMain和打開的選項卡的「數據」我。如何能做到這一點的錢包 代碼: -如何根據Android中的意圖更改選項卡?

m_listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      switch (position) { 
       case 0: 
        Intent mMobileRecharges = new Intent(CMyWalletScreen.this,CRechargeMain.class); 
        startActivity(mMobileRecharges); 

        break; 
       case 1: 
        Intent mDataRecharge = new Intent(CMyWalletScreen.this,CRechargeMain.class); 
        startActivity(mDataRecharge); 
        break; 
       case 2: 
        Intent m_Earning= new Intent(CMyWalletScreen.this,CWalletTransactionScreen.class); 
        startActivity(m_Earning); 
        break; 

      } 
     } 
    }); 

代碼對於CRechargeMain: -

public class CRechargeMain extends AppCompatActivity { 
View m_Main; 
private ViewPager m_ViewPager; 
private Toolbar m_ToolBar; 
private String[]actonBar={"Mobile Recharge","Mobile Data Recharge"}; 

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.recharge_main); 
    init(); 
} 

public void init() { 
    m_ToolBar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(m_ToolBar); 
    //noinspection ConstantConditions 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setDisplayShowTitleEnabled(false); 
    m_ToolBar.setTitle("Mobile Recharge"); 

    TabLayout m_TabLayout = (TabLayout) findViewById(R.id.tab_layout);// finding Id of tablayout 
    m_TabLayout.addTab(m_TabLayout.newTab().setText("Mobile"));// add deal listin tab 
    m_TabLayout.addTab(m_TabLayout.newTab().setText("Data Card"));// add stories tab 
    m_TabLayout.setTabGravity(TabLayout.GRAVITY_FILL);// setting Gravity of Tab 

    m_ViewPager = (ViewPager) findViewById(R.id.pager);//finding Id of ViewPager 
    CRechargePager m_oMobilePager = new CRechargePager 
      (getSupportFragmentManager(), m_TabLayout.getTabCount()); 
    m_ViewPager.setAdapter(m_oMobilePager);// adiing adapter to ViewPager 
    m_ViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(m_TabLayout));// performing action of page changing 
    m_TabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      m_ViewPager.setCurrentItem(tab.getPosition()); 
      m_ToolBar.setTitle(actonBar[tab.getPosition()]); 
     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 

     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 

     } 
    }); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_wallet, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     // Respond to the action bar's Up/Home button 
     case android.R.id.home: 
      finish(); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

}

+1

可以使用http://stackoverflow.com/questions/5265913/how-to-use-putextra-and-getextra-for-string-data –

回答

0

您可以根據活動中的意圖參數使用相同的意圖並選擇選項卡。

0
Intent mMobileRecharges = new Intent(CMyWalletScreen.this,CRechargeMain.class); 
intent.putExtra("doWhat", 0); 

Intent mDataRecharge = new Intent(CMyWalletScreen.this,CRechargeMain.class); 
intent.putExtra("doWhat", 1); 

在您接收活動:

int iDoWhat = intent.getIntExtra("doWhat", -1); 

然後根據iDoWhat的價值你的決定。

int iDoWhat = getIntent().getIntExtra("doWhat",-1); 
switch (iDoWhat) { 
case -1: 
    //select tab 0 
    break; 
case 0: 
    //select tab 0 
    break; 
case 1: 
    //select tab 1 
    break; 
} 

你必須編寫選擇標籤的代碼,現在你知道哪一個。

+0

什麼是-1這裏 – Siddharth

+0

這是defualt值如果額外的不能被讀取。因此,接收方的if/case語句可以處理錯誤。例如如果0或1未發送,則顯示默認選項卡。 – usajnf

+0

給我條件請問 – Siddharth

0

如你有兩個活動我的假設,活性1包含列表和活性2包含基於你要跳到活性2(片段)的條件fragments.from活動1。剛如下調用

Intent i =New Intent(this,CRechargeMain.class); 
i.putExtra("",0); 
startActivity(i); 

在Activty2上根據條件創建方法,您必須設置要加載的片段。

FragmentManager FM = getFragmentManager(); 
FM.beginTransaction().replace(R.id.content_frame, detail).commit(); 
相關問題