0

作成しようとしているアプリに問題があります。私はここ数日にわたりたくさんのグーグルをやってきましたが、わかりません。3リストビューのカスタムアダプタ

目的は、1つのアクティビティに展開可能なリストビューを持たせることです。合計12個のオプションがあります。これらの12個のオプションをクリックすると、ユーザーは同じレイアウトになり、3つのタブ(月曜日、水曜日、金曜日)が表示されます。各タブにはリストビューがあります。これはこれまで私のアプリのためにすべて動作します。今私は自分のカスタムアダプターに、さまざまなデータを3つのリストビューに追加したい(膨大なデータではなく、膨大なデータではないため、遅くなるとは思わない)。クリックされました。

私が遭遇している問題は、どのようにカスタムアダプターにExpandable ListViewのどのアイテムがクリックされたかを知らせることができず、その情報を取得する方法がわからず、3つの異なるリストビューは3つの異なるタブの3つの異なるデータセットで構成されています。

データは非常に単純です。各行には1つの単語と2つの数字を含む3つのテキストボックスがあります。また、チェックボックスもあります

以前はカスタムのアダプタを作っていましたが、それらは単一のリストビュー用であったため、データを分離する必要がなくなり、ずっと簡単でした。私はこのことをどうやって始めたらいいのか分からず、それを見つけようとする私の試みは空になってしまった。

どのような助けも大変ありがたく、正しい方向に私を向けるだけのリンクですばらしいでしょう!ありがとう!

答えて

0

TabLayout + ViewPagerコンボを使用して3つの異なるタブを作成します。
TabLayoutViewPagerにアクセスできるActivityでこれを呼び出し、カスタムリストビューで動的にタブを追加します。そこに、簡単な解決策があります。

0

同じCustomAdapterを使用して、必要なデータを入力することができます。したがって、CustomAdapterのデータをハードコーディングする代わりに、オブジェクトの作成時にデータを動的に設定することができます。

このように、Adapterを作成するときは、処理する必要があるデータを渡します。あなたのアクティビティは、どの拡張可能リスト項目がクリックされたかを知っているので、アダプタに別のデータを送ることができます。

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle arg0) { 
     super.onCreate(arg0); 

     .... 

     ListView listView = (ListView) findViewById(R.id.ID_OF_LISTVIEW); 
     MyCustomAdapter listViewAdapter; 
     if(/* CONDITION 1 */) { 
      listViewAdapter = new MyCustomAdapter(new String[] {"Data1 for Condition 1", "Data2 for Condition 1", "Data3 for Condition 1"}) 
     } else if (/* CONDITION 2 */) { 
      listViewAdapter = new MyCustomAdapter(new String[] {"Data1 for Condition 2", "Data2 for Condition 2"}) 
     } else { 
      listViewAdapter = new MyCustomAdapter(new String[] {"Data1 for Condition 3"}) 
     } 

     listView.setAdapter(listViewAdapter); 

     ....    
    } 

} 
:アダプターを作成するときに

public class MyCustomAdapter extends BaseAdapter { 
    private String [] dataToBePopulated; 

    public MyCustomAdapter(String [] data) { 
     dataToBePopulated = data; 
    } 

    @Override 
    public int getCount() { 
     return dataToBePopulated != null ? dataToBePopulated.lenght : 0; 
    } 

    // ETC.. 
} 

次に、あなたが好きたいデータを送信することができます

関連する問題