我有动态填充的ImageViews和Textviews。如何在ImageView上实现onClick()方法
现在我有一个在ImageView上实现onClick方法的小问题。在某些ImageView上单击它应该切换到片段,并有一些点击到活动。 这里是我的代码 - 我的主要片段:
public class MainFragment extends Fragment {
public static String[] gridViewStrings = {
"string1",
"string2",
"string3",
"string4",
"string5",
"string6"
};
public static int[] gridViewImages = {
R.drawable.delivery,
R.drawable.shipping_logs,
R.drawable.meassurement,
R.drawable.takeovers,
R.drawable.settings,
R.drawable.download_data
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.main_fragment, parent, false);
gridView = (GridView) view.findViewById(R.id.grid);
gridView.setAdapter(new CustomAndroidGridViewAdapter(getActivity(), gridViewStrings, gridViewImages));
imageView = (ImageView) view.findViewById(R.id.gridview_image);
}
我自定义的GridView适配器:
public class CustomAndroidGridViewAdapter extends BaseAdapter {
private Context mContext;
private final String[] string;
private final int[] Imageid;
public CustomAndroidGridViewAdapter(Context c,String[] string,int[] Imageid) {
mContext = c;
this.Imageid = Imageid;
this.string = string;
}
@Override
public int getCount() {
return string.length;
}
@Override
public Object getItem(int p) {
return null;
}
@Override
public long getItemId(int p) {
return 0;
}
@Override
public View getView(final int p, final View convertView, ViewGroup parent) {
View grid;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
grid = new View(mContext);
grid = inflater.inflate(R.layout.grid, null);
TextView textView = (TextView) grid.findViewById(R.id.gridview_text);
ImageView imageView = (ImageView)grid.findViewById(R.id.gridview_image);
textView.setText(string[p]);
imageView.setImageResource(Imageid[p]);
} else {
grid = (View) convertView;
}
return grid;
}
}
问题:如何在ImageView的实现的onClick()并切换到片段和活动?
我知道接口看起来像没有用,因为它们除了定义方法之外什么都不做签名,但实际上他们是OOP程序员的梦想。我建议你真的学会如何使用它们。 –
谢谢你的回答,非常有用。这是我要去特定片段的例子。当不同的图像打开不同的片段时,你能否给我提供几点建议 – RubyDigger19
这实际上取决于你想如何构造碎片。我的意思是,如果这些片段是相同的一般对象,但具有不同的行为和状态,我建议让他们扩展一个抽象类,然后根据哪个imageview是基于哪个图像视图挑选并选择要启动的抽象片段的哪个结构点击。此外,如果我的答案有帮助,一定要评为最佳答案并进行投票。谢谢! –