各項目内に TextView と ImageView を持つ Gridview を設計しています。ImageView をクリック可能にする方法と GridView アイテム自体 (両方とも異なるメソッド () をトリガーする) についてのチュートリアル (更新され、明確なステップバイステップのもの) を見つけようとしました。
これは私がこれまでに持っているものです:
アクティビティ.java
String[] newList;
for(int i=0; i < 6; i++ {
newList[i] = "Item" + i;
}
GridView GV = (GridView) getActivity().findViewById(R.id.sexp_fav);
GV.setAdapter(new GVAdapter(getActivity(), newList)); // passing Activity and List data to adapter
GV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView arg0,
View arg1, int position, long arg3) {
}
});
GVAdapter.java
public class GVAdapter extends BaseAdapter {
private Context mContext;
private LayoutInflater mInflator;
String mEntries[];
public GVAdapter (Context context, String[] entries) {
mContext = context;
mInflator = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mEntries = entries;
}
@Override
public int getCount() {
return mEntries.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null) {
convertView = mInflator.inflate(R.layout.GVItemLayout, parent, false);
}
return convertView;
}
}
結果:
-------------------------
| |
Item1 |Image1 |
| |
-------------------------
-------------------------
| |
Item2 |Image2 |
| |
-------------------------
...
Item1 (Textview) をクリックすると、Item 全体をクリックして GridView の OnItemClickListener をトリガーする必要がありますが、Image1 をクリックすると、itemMethod(String itemName) というメソッドをトリガーし、このメソッドに対応する Item 名を渡す必要があります。そのため、Image1 がクリックされた場合、"Item1" を文字列として method() に渡す必要があります。
どんな助けでも大歓迎です。ありがとうございました