获取所选项目 - ListView Android

时间:2014-01-20 08:21:53

标签: android android-listview

我知道这里有人问过,但答案很混乱。我的ListView中有3个项目。它们是“铝”,“金”和“锌”。通过他们中的每一个,我想开始不同的活动,为此我创建了3个活动,我命名为“Aluminium.java”,“Gold.java”和“Zinc.java”

我在导航抽屉的ListView中使用了此drawer layout。我通过下面给出的代码实现了导航抽屉,我从一个站点获得了这个代码。这段代码改变了碎片并且它无法正常工作。我希望切换活动而不是片段。

我想做三件事:

  1. 通过导航栏中的列表视图切换活动。
  2. 要实现第1点,我想获取点击的列表项,然后使用意图。
  3. 我希望所有3个活动都有这个导航抽屉。
  4. 抱歉,如果它太愚蠢但我是初学者。请帮我解决一下代码。

    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 个答案:

答案 0 :(得分:1)

创建一个基本活动类并将所有抽屉代码放在那里,并为您的3活动扩展此基类,这样,您就可以为所有活动提供抽屉。

class Gold extends BaseActivity{
}

对于点击部分,您已经设置了项目点击监听器,只需设置一个开关案例,例如

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