繁体   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