質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

693閲覧

Xamarin.Android - ExpandableListViewの使い方

sezaki_H

総合スコア41

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2018/08/17 01:56

編集2018/08/17 05:41

ListViewからExpandableListViewに変更をしようと思ったのですが、使い方がよくわからず困っています。
リストあたりはインターネット上から引用したコードです。(https://techbooster.org/android/ui/5812/)
初心者で申し訳ありません。宜しくお願いします。

発生している問題・エラーメッセージ

エラー CS0246 型または名前空間の名前 'List<>' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)。 エラー CS0246 型または名前空間の名前 'Map<,>' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)。 エラー CS0246 型または名前空間の名前 'ArrayList<>' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)。 エラー CS0246 型または名前空間の名前 'HashMap<,>' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してくださ

該当のソースコード

c#

1using Android.App; 2using Android.Widget; 3using Android.OS; 4using Android.Content; 5using MemoMain_1.Resources.layout; 6using System; 7using PCLStorage; 8using Android.Views; 9 10 11namespace MemoMain_1.Resources.layout 12{ 13 [Activity(Label = "exlistviewTest")] 14 public class exlistviewTest : Activity 15 { 16 protected override void OnCreate(Bundle savedInstanceState) 17 { 18 base.OnCreate(savedInstanceState); 19 20 // Create your application here 21 SetContentView(Resource.Layout.exlistviewTest); 22 23 24 25 Button memobutton = FindViewById<Button>(Resource.Id.button1); 26 Button yobibutton = FindViewById<Button>(Resource.Id.button2); 27 ExpandableListView memolist = FindViewById<ExpandableListView>(Resource.Id.expandableListView1); 28 29 string[] filename = new string[100];//ファイル名格納 30 int n; 31 var localFolder = FileSystem.Current.LocalStorage; 32 var files = localFolder.GetFilesAsync().Result;//ファイル一覧取得 33 34 //メイン画面に戻る 35 yobibutton.Click += (_, __) => 36 { 37 38 var intent = new Intent(this, typeof(MainActivity)); 39 40 StartActivity(intent); 41 42 }; 43 44 45 46 47 48 List<Map<String, String>> groupList = new ArrayList<Map<String, String>>(); 49 List<List<Map<String, String>>> childList = new ArrayList<List<Map<String, String>>>(); 50 51 //デフォルトのグループ"未分類" 52 Map<String, String> groupElement = new HashMap<String, String>(); 53 groupElement.put("GROUP_TITLE", "全て"); 54 groupList.add(groupElement); 55 56 //子リスト 57 n = 0; 58 foreach (var file in files) 59 { 60 var fn = file.Name; 61 fn = fn.Remove(fn.Length - 4);//拡張子を表示しないように末尾を削除 62 filename[n] = fn;//配列にファイル名を格納 63 n++; 64 } 65 66 List<Map<String, String>> childElements = new ArrayList<Map<String, String>>(); 67 for (int j = 0; j <= n; j++) 68 { 69 Map<String, String> child = new HashMap<String, String>(); 70 child.put("CHILD_TITLE", filename[j]); 71 childElements.add(child); 72 } 73 childList.add(childElements); 74 } 75 76 } 77}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

JavaのArrayListHashMapではなく、.NETのListDictionaryを使うようにしてください。

SimpleExpandableListAdapterに与えるデータ(childData)もIList<IList<IDictionary<string, object>>>となっているので、ListDictionaryでないといけません。

ListDictionaryを使うときは、using System.Collections.Generic;をつけてください)

投稿2018/08/17 04:36

編集2018/08/17 05:22
f-miyu

総合スコア1625

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sezaki_H

2018/08/20 00:38

なるほど。やってみます! ありがとうございます。
sezaki_H

2018/08/20 01:45 編集

List<Dictionary<string, string>> childElements = new List<Dictionary<string, string>>(); for (int j = 0; j <= n; j++) { Dictionary<string, string> child = new Dictionary<string, string>(); child.Add("CHILD_TITLE", filename[j]); childElements.Add(child); } childList.Add(childElements); 子リストの最後の行 childList.Add(childElements);だけList<DictionaryからDictionaryに変換できない~みたいなエラーが出てしまうのですがどうしたらよいのでしょうか?
f-miyu

2018/08/20 01:49

childListの型が、List<List<Dictionary<string,string>>>になっているでしょうか? 確認してみてください。
sezaki_H

2018/08/20 01:56

なっていませんでした...(-_-;) ありがとうございます助かります。
f-miyu

2018/08/20 02:02

後、SimpleExpandableListAdapterを使うのであれば、List<List<Dictionary<string,object>>>でないと、エラーが出るかもしれません。
sezaki_H

2018/08/20 02:49

お察しの通りエラーが出たのでobjectに変えました! アダプターでも詰まってしまって、新しく質問を出したので回答いただけると助かります...。 隅から隅まですいません><
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問