2016-01-05 53 views
0

嗨我是編程新手,在開始複製可擴展列表的教程並且被禁止超過1周之前開始有很多樂趣。將選擇範圍從可擴展列表傳遞到新活動

我想使用可擴展列表中的最終選擇並將此信息傳遞給我的新活動。它現在設置的方式是我可以傳遞字符串值id(我不想要這個)我想要點擊的實際字符串。

public class MainActivity extends Activity { 
public final static String ID_EXTRA = "com.example.chris.prontopages2.MainActivity."; 
HashMap<String, List<String>> Movies_category; 
List<String> Movies_list; 
ExpandableListView Exp_list; 
MoviesAdapter adapter; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Exp_list = (ExpandableListView) findViewById(R.id.exp_list); 
    Movies_category = DataProvider.getInfo(); 
    Movies_list = new ArrayList<String>(Movies_category.keySet()); 
    adapter = new MoviesAdapter(this, Movies_category, Movies_list); 
    Exp_list.setAdapter(adapter); 

    Exp_list.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 

     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 
      Intent i = new Intent("Main22Activity.class"); 
      i.putExtra(ID_EXTRA, String.valueOf(id)); 
      startActivity(i); 
      return false; 

     } 
    }); 

} 

回答

0

您可以使用下面的給定位置

ExpandableListAdapter itemAdapter = parent.getExpandableListAdapter(); 
String selectedItem = (String) itemAdapter.getChild(groupPosition, childPosition); 

獲得元素,然後通過它在你的意圖。

0

您不需要傳遞子選擇的ID。試試這會幫助你。

Exp_list.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 

      @Override 
      public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 

String movieName = Movies_category.get(Movies_list.get(groupPosiion)).get(childPosition) 
       Intent i = new Intent("Main22Activity.class"); 
       i.putExtra(ID_EXTRA, movieName); 
       startActivity(i); 
       return false; 

      } 
     }); 

並在其他活動中獲得此額外費用。

相關問題