我有動態填充的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是基於哪個圖像視圖挑選並選擇要啓動的抽象片段的哪個結構點擊。此外,如果我的答案有幫助,一定要評爲最佳答案並進行投票。謝謝! –