在网格视图中访问元素按钮

时间:2015-08-21 09:17:15

标签: android android-gridview

我应该访问网格视图中元素的按钮,并且应该捕获该按钮的onItemClick()活动,但不知怎的,我无法做到。帮帮我。我在下面发布我的代码。请检查一下。

package com.nik.cardone;

import java.util.ArrayList;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.GridView;
import android.widget.TextView;

public class Fragment2 extends Fragment{

GridView fragment2Grid;
POJOMenuGrid pojo;

ArrayList<POJOMenuGrid> arr;
String[] name = {"Manchow Soup","Clear Soup","Mushroom Soup","Corn Soup","Tomato Soup"};
String[] desc = {"Soya water with capsicum , carrots , medium spicy"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View v = inflater.inflate(R.layout.new_order_fragment_2, null);


    initialize();
    fragment2Grid = (GridView)v.findViewById(R.id.fragment2Grid);


    fragment2Grid.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
             View v = arg0.getChildAt(arg2);
            // TODO Auto-generated method stub

            System.out.println("In grid :");





        }

    });


    for(int i=0;i<5;i++){
    arr.add(new POJOMenuGrid(name[i], desc[0], R.drawable.t2));
    }
    System.out.println(arr.get(0).getName()+" "+arr.get(0).getDescription()+" ");



    CustomGridAdapter adapter = new CustomGridAdapter(v.getContext(), arr);
    fragment2Grid.setAdapter(adapter);
    System.out.println("adapter set");


    return v;
}
private void initialize() {
    // TODO Auto-generated method stub
    arr = new ArrayList<POJOMenuGrid>();


}
}

自定义适配器

package com.nik.cardone;

import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class CustomGridAdapter extends BaseAdapter{


Context context;
ArrayList<POJOMenuGrid> arr;
LayoutInflater inflater;
 TextView itemName;
    TextView itemDescription;
    ImageView itemImage;
    Button plus;
    Button minus;
    TextView counter;


public CustomGridAdapter(Context context, ArrayList<POJOMenuGrid> arr) {
    super();
    this.context = context;
    this.arr = arr;

    inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
System.out.println("in constructor");

}




@Override
public int getCount() {
    // TODO Auto-generated method stub
    return arr.size();
}

@Override
public Object getItem(int arg0) {
    // TODO Auto-generated method stub
    return arr.get(arg0);
}

@Override
public long getItemId(int arg0) {
    // TODO Auto-generated method stub
    return arg0;
}

@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
    // TODO Auto-generated method stub
    System.out.println("in adapter 1");


    arg1 = inflater.inflate(R.layout.grid_single_item, null);


System.out.println("in adapter 2");

itemName  = (TextView)arg1.findViewById(R.id.itemName);
itemDescription  = (TextView)arg1.findViewById(R.id.itemDescription);
//counter  = (TextView)arg1.findViewById(R.id.counter);
itemImage  = (ImageView)arg1.findViewById(R.id.itemImage);
plus = (Button)arg1.findViewById(R.id.plus);
minus = (Button)arg1.findViewById(R.id.minus);


plus.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        System.out.println("In plus :");
        // TODO Auto-generated method stub
        TextView counter = (TextView)arg0.findViewById(R.id.counter);

        int counter1 = Integer.parseInt(counter.getText().toString());

        counter1++;
        counter.setText(""+counter1);




    }
});

minus.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        TextView counter = (TextView)arg0.findViewById(R.id.counter);

        int counter1 = Integer.parseInt(counter.getText().toString());

        counter1--;
        counter.setText(""+counter1);


    }
});


System.out.println("in adapter 3");

itemName.setText(arr.get(arg0).getName());
itemDescription.setText(arr.get(arg0).getDescription());
itemImage.setImageResource(arr.get(arg0).getImage());

System.out.println("in adapter 4");

return arg1;
}

}

0 个答案:

没有答案