我需要知道如何访问GridView中的单个元素,以便我可以设置它的可见性。 在MovementSelectionFragment中查找所有大写注释。谢谢
public class MovementSelectionFragment extends Fragment{
private static final int REQUEST_NEW_MOVEMENT = 0;
private GridView mGridView;
private ArrayList<Integer> movements = new ArrayList<Integer>();
/*
* This array allows the user to select multiple workouts at once.
* It doesn't need to be reinstantiated every time the user backs up
* to this view.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.movement_selection, parent, false);
mGridView = (GridView)v.findViewById(R.id.gridView);
mGridView.setAdapter(new ImageAdapter(v.getContext()));
//*************************************************************//
mGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position,
long id) {
// Sending image id to WODListActivity
Intent movementIntent = new Intent(v.getContext(),
WODListActivity.class);
movements.add(position); // Add the position to the movements
// array.
// show contents of integer array that holds the positions of
// the movements selected so far (use this to set button
// visibility)
for (int i = 0; i < movements.size(); i++) {
Toast.makeText(v.getContext(),
Integer.toString(movements.get(i)),
Toast.LENGTH_SHORT).show();
// THIS KILLS THE ENTIRE VIEW (OBV)
// I NEED IT TO ONLY KILL THE SELECTED ELEMENT
mGridView.setVisibility(View.GONE);
}
movementIntent.putExtra(WODListFragment.NEW_MOVE_ADDED,
movements);
startActivityForResult(movementIntent, REQUEST_NEW_MOVEMENT);
}
});//*************************************************************//
return v;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != Activity.RESULT_OK){
return;
}
}
}
这是我正在使用的ImageAdapter类
public class ImageAdapter extends BaseAdapter {
private Context mContext;
// Keep all Images in array
public Integer[] mThumbIds = {
R.drawable.push_up_icon, R.drawable.pull_up_icon,
R.drawable.burpees, R.drawable.air_squats,
R.drawable.hspu_icon, R.drawable.mtn_climbers,
R.drawable.run_icon, R.drawable.jump_rope,
R.drawable.lunges, R.drawable.box_jumps,
};
// Constructor
public ImageAdapter(Context c){
mContext = c;
}
@Override
public int getCount() {
return mThumbIds.length;
}
@Override
public Object getItem(int position) {
return mThumbIds[position];
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(mThumbIds[position]);
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
imageView.setTag(new Integer(position));
return imageView;
}
}
也许需要在getView()中修改某些内容?
答案 0 :(得分:0)
替换:
mGridView.setVisibility(View.GONE);
...与
v.setVisibility(View.GONE);