Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ListView OnClick特定项不工作_Java_Android - Fatal编程技术网

Java ListView OnClick特定项不工作

Java ListView OnClick特定项不工作,java,android,Java,Android,我有一个ListViewAdapter,我正在尝试设置它,但是它不工作,这是我第三次尝试以不同的方式使它工作,但仍然没有运气,我将发布我的整个ListViewAdapter代码 public class ListViewAdapter extends BaseAdapter { Context mContext; String [] productTitleArray; LayoutInflater inflater; private List<

我有一个ListViewAdapter,我正在尝试设置它,但是它不工作,这是我第三次尝试以不同的方式使它工作,但仍然没有运气,我将发布我的整个ListViewAdapter代码

    public class ListViewAdapter extends BaseAdapter {

    Context mContext;
    String [] productTitleArray;

    LayoutInflater inflater;
    private List<ClassproductList> classproductlist = null;
    private ArrayList<ClassproductList> arraylist;

    public ListViewAdapter(Context context, List<ClassproductList> classproductlist) {
        mContext = context;
        this.classproductlist = classproductlist;
        inflater = LayoutInflater.from(mContext);
        this.arraylist = new ArrayList<ClassproductList>();
        this.arraylist.addAll(classproductlist);
    }

    public class ViewHolder {        
        TextView title;
        TextView description;
        ImageView photo;
    }

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

    @Override
    public ClassproductList getItem(int position) {
        return classproductlist.get(position);
    }

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

    public View getView(final int position, View view, ViewGroup parent) {
        final ViewHolder holder;
        if (view == null) {
            holder = new ViewHolder();
            view = inflater.inflate(R.layout.list_view_single_row, null);
            holder.title = (TextView) view.findViewById(R.id.textLarge);
            holder.description = (TextView) view.findViewById(R.id.textSmall);
            holder.photo= (ImageView) view.findViewById(R.id.imageThumb);
            view.setTag(holder);
        } else {
            holder = (ViewHolder) view.getTag();
        }
        holder.title.setText(classproductlist.get(position).getTitle());
        holder.description.setText(classproductlist.get(position).getDescription());
        holder.photo.setImageResource(classproductlist.get(position).getImage());



        Resources res = mContext.getResources();
        productTitleArray = res.getStringArray(R.array.titles_product);


        ListViewAdapter myData = new ListViewAdapter(mContext, R.layout.list_view, myData);
            ListView listView = (ListView) findViewById(R.id.listview1);
            listView.setAdapter(myData);

            listView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            switch(position) {
            case 1:
                    Log.d("Msg", "Found Product 1");
            break;
            case 2:
                    Log.d("Msg", "Found Product 2");

                   break;
            default:
            }
            }

        });

        return view;
    }

    public void filter(String charText) {
        charText = charText.toLowerCase(Locale.getDefault());
        classproductlist.clear();
        if (charText.length() == 0) {
            classproductlist.addAll(arraylist);
        }
        else
        {
            for (ClassproductList wp : arraylist)
            {
                if (wp.getTitle().toLowerCase(Locale.getDefault()).contains(charText))
                {
                    classproduclist.add(wp);
                    classproductlist.add(wp);
                }
            }
        }
        notifyDataSetChanged();
    }
}
公共类ListViewAdapter扩展了BaseAdapter{
语境;
字符串[]productTitleArray;
充气机;
私有列表classproductlist=null;
私有ArrayList ArrayList;
公共ListViewAdapter(上下文上下文,列表classproductlist){
mContext=上下文;
this.classproductlist=classproductlist;
充气器=从(mContext)开始的充气器;
this.arraylist=新的arraylist();
this.arraylist.addAll(classproductlist);
}
公共类视图持有者{
文本视图标题;
文本视图描述;
ImageView照片;
}
@凌驾
public int getCount(){
返回classproductlist.size();
}
@凌驾
公共类ProductList getItem(int位置){
返回classproductlist.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
公共视图getView(最终整数位置、视图视图、视图组父视图){
最终持票人;
如果(视图==null){
holder=新的ViewHolder();
视图=充气机。充气(R.layout.list\u view\u single\u row,null);
holder.title=(TextView)view.findViewById(R.id.textLarge);
holder.description=(TextView)view.findViewById(R.id.textSmall);
holder.photo=(ImageView)view.findViewById(R.id.imageThumb);
视图.设置标签(支架);
}否则{
holder=(ViewHolder)view.getTag();
}
holder.title.setText(classproductlist.get(position.getTitle());
holder.description.setText(classproductlist.get(position.getDescription());
holder.photo.setImageResource(classproductlist.get(position.getImage());
Resources res=mContext.getResources();
productTitleArray=res.getStringArray(R.array.titles\u product);
ListViewAdapter myData=新的ListViewAdapter(mContext,R.layout.list\u视图,myData);
ListView ListView=(ListView)findViewById(R.id.listview1);
setAdapter(myData);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
开关(位置){
案例1:
Log.d(“味精”,“发现产品1”);
打破
案例2:
Log.d(“味精”,“发现产品2”);
打破
违约:
}
}
});
返回视图;
}
公共空过滤器(字符串图表文本){
charText=charText.toLowerCase(Locale.getDefault());
classproductlist.clear();
如果(ChartText.length()==0){
classproductlist.addAll(arraylist);
}
其他的
{
对于(ClassproductList wp:arraylist)
{
if(wp.getTitle().toLowerCase(Locale.getDefault()).contains(charText))
{
classproduclist.add(wp);
classproductlist.add(wp);
}
}
}
notifyDataSetChanged();
}
}
此代码中存在问题,但不知道如何解决此问题:

    ListViewAdapter myData = new ListViewAdapter(mContext, R.layout.list_view, myData);
    ListView listView = (ListView) findViewById(R.id.listview1);
    listView.setAdapter(myData);

    listView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    switch(position) {
    case 1:
            Log.d("Msg", "Found Product 1");
    break;
    case 2:
            Log.d("Msg", "Found Product 2");

           break;
    default:
    }
    } 
});
ListViewAdapter myData=新的ListViewAdapter(mContext,R.layout.list\u视图,myData);
ListView ListView=(ListView)findViewById(R.id.listview1);
setAdapter(myData);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
开关(位置){
案例1:
Log.d(“味精”,“发现产品1”);
打破
案例2:
Log.d(“味精”,“发现产品2”);
打破
违约:
}
} 
});

您到底遇到了什么错误?仅仅说“它不工作”并不能给任何人提供更多的信息。您缺少列表视图和列表适配器如何工作的基本知识。您在getView中设置list Adpter:(.请阅读文档您使用的是ListFragment类还是ListActivity;或者仅仅是一个activity?您能提供列表存在于哪个类中的一些上下文吗?)@Mike B-显然,在查看代码时,我的listview出了问题-Libin-请对此提出建议,我正在慢慢阅读教程,但同时我需要提升我的项目,你能编辑我的代码吗,我会比较一下,看看做了哪些更改?