2016-06-14 11 views
1

私はExpandableListViewを作成しようとしていて、MyDataProviderクラスで作成したHashMapを使用してグループと子を与えています。私はほぼ成功していますが、アダプターの設定時にこのエラーが出る理由を理解できません。ここでExpandableListViewに値を設定しようとしていますが、カスタムアダプタを設定しようとしてエラーが発生するのはなぜですか?

は、一覧が表示されます、私のクラスである:ここでは

package com.gmd.referenceapplication; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ExpandableListView; 
import com.gmd.referenceapplication.R; 

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.Map; 

public class CommonConstants extends AppCompatActivity { 
    View view; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_common_constants); 


     MyDataProvider dp = new MyDataProvider(); 

     view= findViewById(R.id.expandableList); 
     HashMap constantsHashMap; 
     constantsHashMap = dp.getCommonMap(); 
     ArrayList constantsHashMapKeys = new ArrayList<String>(constantsHashMap.keySet()); 

     MyCustomAdapter adapter = new MyCustomAdapter(this, constantsHashMap, constantsHashMapKeys); 
     view.setAdapter(adapter); //error here 








     setContentView(view); 
    } 
} 

は私のアダプタである:ここでは

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseExpandableListAdapter; 
import android.widget.TextView; 

import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 

/** 
* Created by gmd on 6/13/2016. 
*/ 
public class MyCustomAdapter extends BaseExpandableListAdapter { 

    private Context context; 
    private HashMap<String,ListViewItem> constantsHashMap; 
    private List<String> constantList; 

    public MyCustomAdapter(Context context, HashMap<String, ListViewItem> hashMap, List<String> list){ 

     constantsHashMap = hashMap; 
     this.context = context; 
     this.constantList = list; 

    } 



    public View getChildView(int groupPosition, 
          int childPosition, 
          boolean isLastChild,View convertView, ViewGroup parent) { 
     String childTitle = (String) getChild(groupPosition, childPosition); 
     if(convertView == null) { 
      LayoutInflater inflater = LayoutInflater.from(context); 
      convertView = inflater.inflate(R.layout.child_layout, parent, false); 
     } 
     TextView childTextView = (TextView) convertView.findViewById(R.id.textViewChild); 
     childTextView.setText(childTitle); 
     return convertView; 


    } 

は誤りです:

Error:(30, 13) error: cannot find symbol method setAdapter(MyCustomAdapter) 

私はそれがだと確信しています基本的な間違いですが、かなり広範囲にわたるグーグルグーグルを行って何も見つけていないので、何かすべての助けに感謝します。ありがとう!

編集:

ここではこのアクティビティのxmlを示します。私は、ビューの変数を参照しようとしているビューは、ID「expandableList」

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:orientation="vertical" 
    tools:context="com.gmd.referenceapplication.CommonConstants"> 


    <ExpandableListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:dividerHeight="@dimen/activity_vertical_margin" 
     android:indicatorLeft="@dimen/activity_vertical_margin" 
     android:id="@+id/expandableList" /> 
</LinearLayout> 

答えて

1

あなたがsetAdapterというメソッドを持っていないリストビューのように使用してみビューここExpandableListView、です。ビューはあなたのアンドロイドプロジェクトにあるビューのスーパークラスです。ビューの代わりにリストビューを使用する必要があります。

私のように好奇心が強いのであれば、android.widget.AdapterViewにsetAdapterメソッドが追加されます。 これはViewGroupの子であり、ViewGroupはViewの子です。

enter image description here

まず最初に、

ListView listView; 

View view; 

などを変更するには、この

setContentView(view); 

を削除し、あなたのListView Rにアダプタを設定しますef。

+0

ああ、本当にありがとう、私はそれを考え出した。 – grassss

+0

あなたは大歓迎です! =) –

関連する問題