2016-04-20 58 views
1

我創建了一個簡單的Android應用程序,其中包含一個ListView。下面我有我的自定義列表適配器:在您的自定義列表視圖適配器中創建方法的正確方法

package com.example.android.efaas; 

import java.util.List; 

import com.example.android.R; 
import com.example.android.efaas.bean.ListItem; 

import android.app.Activity; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class CustomListAdapter extends BaseAdapter { 

    LayoutInflater inflater = null; 
    Context ctx; 
    List<ListItem> data; 

    public CustomListAdapter(Activity activity, List<ListItem> data){ 
     ctx = activity; 
     this.data = data; 
     inflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    @Override 
    public int getCount() { 
     return data.size(); 
    } 

    @Override 
    public Object getItem(int pos) { 
     return pos; 
    } 

    @Override 
    public long getItemId(int pos) { 
     return pos; 
    } 

    @Override 
    public View getView(int pos, View view, ViewGroup vgroup) { 
     View rowView = inflater.inflate(R.layout.list_menu, null); 
     ImageView img = (ImageView) rowView.findViewById(R.id.list_menu_image); 
     TextView title = (TextView) rowView.findViewById(R.id.list_menu_title); 

     ListItem item = data.get(pos); 
     img.setImageResource(item.getId()); 
     title.setText(item.getTitle()); 

     return rowView; 
    } 

    public ListItem getListItem(int pos){ 
     return data.get(pos); 
    } 

} 

我有一個公共的方法getListItem,我努力在ListView的onClick叫它但不知何故,我似乎無法使它發揮作用。這裏是問題的形象: enter image description here

我該如何解決這個問題?

回答

4

你應該投adapter.getAdapter()CustomListAdapter類,然後

+0

我試過這一個'CustomListAdapter a =(CustomListAdapter)適配器;'但它沒有奏效! –

+1

'AdapterView'不是'Adapter'。你會得到一個'ClassCastException'。 –

+0

@MikeM。,感謝它的工作! –

2

編譯時錯誤是由於一個事實,即adapter不是你CustomListAdapter。你可以做的是將返回值adapter.getAdapter()轉換爲CustomListAdapter。相反,你應該使用已有的東西來檢索位置上的對象。像getItemAtPosition(int)

相關問題