android - 如何在可扩展 ListView 中单击子项导航到下一个 Activity ?

标签 android listview

我已经建立了一个可展开的 ListView 。当我点击子项目时,我想开始另一个 Activity 。我该如何实现呢?我尝试使用 onChildClick 方法但没有用。这是我的 MainActivity 类。请建议我如何执行此操作。

    package com.example.expandablelistview;

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ExpandableListView;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.ExpandableListView.OnChildClickListener;


    public class MainActivity extends Activity {

    ExpandableListAdapter listAdapter;
    ExpandableListView expListView;
    List<String> listDataHeader;
    HashMap<String, List<String>> listDataChild;

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

    // get the listview
    expListView = (ExpandableListView) findViewById(R.id.lvExp);

    // preparing list data
    prepareListData();

    listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);

    // setting list adapter
    expListView.setAdapter(listAdapter);

    expListView.setOnChildClickListener(new OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View view,
                int groupPosition, int childPosition, long id) {
            // selected item 
             String item = ((TextView) view).getText().toString();
             Intent i = new Intent(getApplicationContext(), SingleListItem.class);
          startActivity(i);
       // sending data to new activity
          i.putExtra("item", item);
          startActivity(i);
          return false;

          }
      });
   }

  /*
 * Preparing the list data
 */
   private void prepareListData() {
    listDataHeader = new ArrayList<String>();
    listDataChild = new HashMap<String, List<String>>();

    // Adding child data
    listDataHeader.add("Catalog");
    listDataHeader.add("My Account");
    listDataHeader.add("Library Info");

    // Adding child data
    List<String> catalog = new ArrayList<String>();
    catalog.add("Automobile");
    catalog.add("Computer Science");
    catalog.add("Civil");
    catalog.add("Electronics and Communication");
    catalog.add("Electrical and Electronics");
    catalog.add("Information Science");
    catalog.add("Industrial Production");
    catalog.add("Mechanical");
    catalog.add("Basic Sciences");

    List<String> myaccount = new ArrayList<String>();
    myaccount.add("Check Holds");
    myaccount.add("Unreserve Books");

    List<String> libraryinfo = new ArrayList<String>();
    libraryinfo.add("Library Hours");
    libraryinfo.add("Contact Library");

    listDataChild.put(listDataHeader.get(0), catalog); // Header, Child data
    listDataChild.put(listDataHeader.get(1), myaccount);
    listDataChild.put(listDataHeader.get(2), libraryinfo);
      }
    }

最佳答案

试试这段代码

expListView.setOnChildClickListener(new OnChildClickListener() {

    @Override
    public boolean onChildClick(ExpandableListView parent, View view,
            int groupPosition, int childPosition, long id) {
        // selected item 
         String item = ((TextView) view).getText().toString();
         Intent i = new Intent(getApplicationContext(), SingleListItem.class);
         i.putExtra("item", item);
         startActivity(i);
      }
      return false;
  });

关于android - 如何在可扩展 ListView 中单击子项导航到下一个 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21599867/

相关文章:

android - 将所有互联网流量从我的 android voip 应用程序路由到我自己的 vpn 服务器

java - SimpleXml @ElementListUnion 标签在 Android 上的性能

android - Chris Banes 拉动刷新 Fragment 中的 ListView/GridView

android - 特定位置的 ListView setText

android - 有没有一种方法可以使用游标适配器来显示其项目由 sqlite 支持的列表

java - 通过 webservice android 读取 JSON

android - ksoap2 in android in Multiple Array Data Retrieving

android - 如何永久取消发布免费的 Android 应用程序?

android - 如何在 android 中使用基本适配器时过滤列表项?

android - 使用 Android 中 ListView 外的删除按钮删除 ListView 中的项目