2015-01-21 3 views
0

Я следил за учебником и имел расширяемый ListView и хотел связать ребенка с новым действием - как бы я это сделал? Я новичок в Android, так что любая помощь была бы оценена :)ListView для нового намерения

createGroupList(); 

    createCollection(); 

    expListView = (ExpandableListView) findViewById(R.id.search_list); 
    final ExpandableListAdapter expListAdapter = new ExpandableListAdapter(
      this, groupList, advSearchOption); 
    expListView.setAdapter(expListAdapter); 

    expListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 

     public boolean onChildClick(ExpandableListView parent, View v, 
            int groupPosition, int childPosition, long id) { 
      final String selected = (String) expListAdapter.getChild(
        groupPosition, childPosition); 
      Toast.makeText(getBaseContext(), selected, Toast.LENGTH_LONG) 
        .show(); 

      return true; 
     } 
    }); 
private void createGroupList() { 
    groupList = new ArrayList<String>(); 
    groupList.add("Advanced Search"); 
} 
private void createCollection() { 
    // preparing laptops collection(child) 
    String[] searches = { "Height", "Weight", 
      "Hair Colour" }; 
    advSearchOption = new LinkedHashMap<String, List<String>>(); 

    for (String advSearch : groupList) { 
     if (advSearch.equals("Advanced Search")) { 
      loadChild(searches); 
     } 

     advSearchOption.put(advSearch, childList); 
    } 
} 
private void loadChild(String[] searchOptions) { 
    childList = new ArrayList<String>(); 
    for (String model : searchOptions) 
     childList.add(model); 
} 

ответ

0

Вы должны использовать Intents здесь документация для Android на намерениях:

http://developer.android.com/guide/components/intents-filters.html

Но в основном, где вы есть тост, вы должны сделать что-то вроде этого:

Intent childIntent = new Intent(this, ChildActivity.class); 
startActivity(childIntent); 
+0

Привет, спасибо за отзыв, как бы я указал, какой элемент в моем дочернем списке будет ссылаться на новую активность? – rory

+0

@rory у вас есть привязка данных к вашему дочернему элементу, вы можете получить данные через getChild (int groupPosition, int childPosition) и поместить некоторые данные в намерение – jobcrazy

+0

Привет @jobcrazy, я хочу, чтобы высота была связана с новой активностью String [] search = {"Высота", "Вес", "Цвет волос"}; – rory

0

чтобы отправить данные на новый Activity.You может написать что-то вроде этого

Intent childIntent = new Intent(this, ChildActivity.class); 
childIntent.putExtra("bind_value", (String) expListAdapter.getChild(
        groupPosition, childPosition)); 
startActivity(childIntent); 

и извлекать значение в новой операции onCreate().

+0

Спасибо, к сожалению, что дает мне ошибку Не удается разрешить конструктор :( – rory

+0

подробнее о вашей ошибке – jobcrazy

+0

Невозможно разрешить конструктор Intent (android.widget.ExpandableListView.OnChildClickListener, java.lang.class – rory

Смежные вопросы