tôi tạo thành công một GridView tùy chỉnh (với hình ảnh và văn bản). Bây giờ tôi muốn viết một phương thức OnItemClickListener.I có thể lấy vị trí trên phương thức OnItemClickListener, nhưng tôi muốn có thể nhấp vào "Bạn bè" và xem "Mục được nhấp: Bạn bè"OnItemClickListener GridView Android
Làm thế nào tôi có thể chọn chuỗi thay vì vị trí? Đây là mã nguồn của tôi
public class Item {
Bitmap image;
String title;
public Item(Bitmap image, String title) {
super();
this.image = image;
this.title = title;
}
public Bitmap getImage() {
return image;
}
public void setImage(Bitmap image) {
this.image = image;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public class CustomGridViewAdapter extends ArrayAdapter<Item> {
Context context;
int layoutResourceId;
ArrayList<Item> data = new ArrayList<Item>();
public static Item item ;
public CustomGridViewAdapter(Context context, int layoutResourceId,
ArrayList<Item> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
RecordHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new RecordHolder();
holder.txtTitle = (TextView) row.findViewById(R.id.item_text);
holder.imageItem = (ImageView) row.findViewById(R.id.item_image);
row.setTag(holder);
} else {
holder = (RecordHolder) row.getTag();
}
item= data.get(position);
holder.txtTitle.setText(item.getTitle());
holder.imageItem.setImageBitmap(item.getImage());
return row;
}
public static class RecordHolder {
public static TextView txtTitle;
ImageView imageItem;
}
}
public class MainActivity extends Activity {
GridView gridView;
ArrayList<Item> gridArray = new ArrayList<Item>();
CustomGridViewAdapter customGridAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// set grid view item
Bitmap homeIcon = BitmapFactory.decodeResource(this.getResources(),
R.drawable.home);
Bitmap userIcon = BitmapFactory.decodeResource(this.getResources(),
R.drawable.personal);
gridArray.add(new Item(homeIcon, "Home"));
gridArray.add(new Item(userIcon, "User"));
gridArray.add(new Item(homeIcon, "House"));
gridArray.add(new Item(userIcon, "Friend"));
gridArray.add(new Item(homeIcon, "Home"));
gridArray.add(new Item(userIcon, "Personal"));
gridArray.add(new Item(homeIcon, "Home"));
gridArray.add(new Item(userIcon, "User"));
gridArray.add(new Item(homeIcon, "Building"));
gridArray.add(new Item(userIcon, "User"));
gridArray.add(new Item(homeIcon, "Home"));
gridArray.add(new Item(userIcon, "xyz"));
gridView = (GridView) findViewById(R.id.gridView1);
customGridAdapter = new CustomGridViewAdapter(this, R.layout.row_grid,
gridArray);
gridView.setAdapter(customGridAdapter);
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(),
"Item Clicked: " + position, Toast.LENGTH_SHORT).show();
}
});
}
}
cảm ơn nhưng đó là câu trả lời không hiệu quả. Tôi đã thay đổi mã này, nhưng tôi không thể hiển thị ví dụ nhà nếu tôi nhấp vào nhà: ( – user3619713
tôi cũng bị xóa trong đối tượng mục nhưng khi tôi nhấp vào mục trong GridView tôi có thể hiển thị tên gói và như văn bản này @ 556622123 – user3619713
Sau khi chỉnh sửa những gì dẫn bạn có? –