2014-01-20 27 views
1

我知道這已被問到這裏,但答案很混亂。我在我的ListView有3個項目。他們是「鋁」,「金」和「鋅」。通過它們中的每一個,我想開始不同的活動,並且爲此我創建了我命名爲「Aluminium.java」,「Gold.java」和「Zinc.java」的3個活動得到選定的項目 - 列表查看Android

我已經使用這個ListView在導航抽屜的drawer layout中。我通過下面給出的代碼實現了導航抽屜,這是我從站點獲得的。此代碼更改了片段,並且它不能正常工作。我想切換活動,而不是片段。

我想要實現三件事情:通過抽屜式導航列表視圖活動之間

  1. 開關。
  2. 要實現點1,我想獲取點擊列表項目,然後使用意圖。
  3. 我想要所有的3個活動都有這個導航抽屜。

對不起,如果它太笨了,但我是一個初學者。請幫我拿出代碼。

Java代碼

public class MainActivity extends FragmentActivity { 
final String[] data ={"Aluminium","Gold","Zinc"}; 
final String[] fragments ={ 
     "com.Chinmay.navigationdrawer.Gold", 
     "com.Chinmay.navigationdrawer.Aluminium", 
     "com.Chinmay.navigationdrawer.Zinc"}; 

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

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

    final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout); 
    final ListView navList = (ListView) findViewById(R.id.left_drawer); 
    navList.setAdapter(adapter); 
    navList.setOnItemClickListener(new AdapterView.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); 
        android.support.v4.app.FragmentTransaction tx = getSupportFragmentManager().beginTransaction(); 
        tx.replace(R.id.content_frame, Fragment.instantiate(MainActivity.this, fragments[pos])); 
        tx.commit(); 
       } 
      }); 
      drawer.closeDrawer(navList); 
      android.support.v4.app.FragmentTransaction tx = getSupportFragmentManager().beginTransaction(); 
      tx.replace(R.id.content_frame,Fragment.instantiate(MainActivity.this, fragments[0])); 
      tx.commit(); 
     } 
    }); 
} 

}

+1

爲什麼不能有1個基本活動實現與鋁,金3個片段抽屜式導航欄和鋅? – Srikanth

+0

其實我不想片段作爲我創造的3個活動開放更多的活動。 –

+0

其實,在你的代碼中,你正在使用片段...... – Srikanth

回答

1

做一個基本活動類,並把所有的抽屜碼在那裏,並擴展這個基類爲您3活動,以這種方式,你會爲您的所有活動提供抽屜。

class Gold extends BaseActivity{ 
} 

對於點擊的部分,你已經設置的項目點擊監聽器,只需打個開關的情況下,如

switch (pos){ 
    case 0: 
     Intent i = new Intent(this,Gold.java); 
     startActivity(i); 
     break; 
    } 
// fill the rest 
} 
+0

但是,如何知道用戶是否點擊了金或鋁或鋅? –

+0

因爲它只有3個項目,我認爲你可以使用你已經知道的位置0是黃金,1是鋁等,或者讓一個內部類如MenuItem,並把一個變量定義爲鋁,或檢查查看文本等等。有很多方法可以做到這一點,這取決於你 –

+0

其實有119個項目!我已經完成了3,我還將通過在抽屜佈局的頂部添加一個搜索欄來添加搜索功能。所以,項目的順序會改變。我現在應該怎麼做? –

相關問題