gridview가있는 조각이 있습니다.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
context = container.getContext();
View window = inflater
.inflate(R.layout.shop_fragment, container, false);
gridView = (GridView) window.findViewById(R.id.shop_root_view);
gridView.setAdapter(new ShopAdapter(context, GRID_DATA));
gridView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(
context,
((TextView) v.findViewById(R.id.grid_item_label))
.getText(), Toast.LENGTH_SHORT).show();
}
});
return window;
}
그리고 어댑터 :
public class ShopAdapter extends BaseAdapter {
private Context context;
private final String[] gridValues;
// Constructor to initialize values
public ShopAdapter(Context context, String[] gridValues) {
this.context = context;
this.gridValues = gridValues;
}
@Override
public int getCount() {
return gridValues.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
// Number of times getView method call depends upon gridValues.length
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// LayoutInflator to call external grid_item.xml file
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(context);
// get layout from grid_item.xml ( Defined Below )
gridView = inflater.inflate(R.layout.item_grid_shop, null);
// set value into textview
TextView textView = (TextView) gridView
.findViewById(R.id.grid_item_label);
Log.d("Shop", "pozycja: " + position);
textView.setText(gridValues[position]);
// set image based on selected text
ImageView imageView = (ImageView) gridView
.findViewById(R.id.grid_item_image);
imageView.setImageResource(R.drawable.ic_launcher);
} else {
gridView = (View) convertView;
}
return gridView;
}
}
해당 조각을 열 때마다 GRID_DATA의 항목이 첫 번째와 마지막 위치에 나타납니다. GRID_VIEW의 마지막 항목이 표시되지 않습니다. 이것을 해결하는 방법? 이것은 인터넷에서 찾은 예제 코드입니다.
여기서 convertView
사용법이 잘못되었습니다.
다른 방식으로 사용해야합니다.-null이면 뷰를 확장합니다.-그렇지 않으면 아무 작업도하지 않고 사용합니다. 그런 다음 해당 브래킷을 닫고 데이터를 설정합니다.
이 시도:
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.item_grid_shop, null);
}
TextView textView = (TextView) convertView.findViewById(R.id.grid_item_label);
Log.d("Shop", "pozycja: " + position);
textView.setText(gridValues[position]);
ImageView imageView = (ImageView) convertView.findViewById(R.id.grid_item_image);
imageView.setImageResource(R.drawable.ic_launcher);
return convertView;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다