簡體   English   中英

獲取選定的項-ListView Android

[英]get selected item - ListView Android

我知道這里有人問過這個問題,但是答案卻很混亂。 我的ListView有3個項目。 它們是“鋁”,“金”和“鋅”。 我想通過它們中的每一個開始不同的活動,為此,我創建了3個活動,分別命名為“ Aluminium.java”,“ Gold.java”和“ Zinc.java”。

我在導航抽屜的drawer layout使用了此ListView 我通過下面從站點獲得的代碼實現了導航抽屜,該代碼更改了片段並且無法正常工作。 除了片段,我想切換活動。

我想實現三件事:

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

}

創建一個基本活動類,並將所有抽屜式代碼放在此處,並為您的3個活動擴展該基本類,這樣,您將擁有所有活動的抽屜。

class Gold extends BaseActivity{
}

對於單擊部分,您已經設置了一個項目單擊偵聽器,只需設置一個開關盒,例如

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM