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;

        }
    });

}
4

2 に答える 2

0

次を使用して、指定された位置にある要素を取得できます

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

そして、あなたの意図でそれを渡します。

于 2016-01-05T04:13:40.213 に答える
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;

            }
        });

他のアクティビティでこの余分なものを取得します。

于 2016-01-05T05:10:41.537 に答える