I am trying to create one horizontal & one vertical gridview which has scroll functionality.
I am trying to follow blog Horizontal scroll
**In above blog they are loading images from /drawable folder.
Source code implementation to make image grid view horizontal they are using HorizontalListView
Using this I am able to scroll horizontally my images gridview.
Using Listview I am able to load images vertically also.
Now as per above blog a button is added to each image in horizontal gridview as below.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff"
>
<com.devsmart.android.ui.HorizontalListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="200dip"
android:background="#ddd"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="300dip">
<ListView android:layout_width="200dip"
android:layout_height="wrap_content"
android:id="@+id/myverticalView"
android:layout_weight="1">
</ListView>
</LinearLayout>
</LinearLayout>
viewItem.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/image"
android:layout_width="150dip"
android:layout_height="150dip"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="20dp"
android:scaleType="centerCrop"
/>
<Button
android:id="@+id/clickbutton"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignBottom="@+id/image"
android:layout_alignLeft="@+id/image"
android:layout_marginBottom="56dp"
android:layout_marginLeft="64dp"
android:gravity="center"
android:padding="16dip" />
<TextView
android:id="@+id/title"
android:layout_width="100dip"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/image"
android:layout_below="@+id/image"
android:layout_marginRight="19dp"
android:layout_marginTop="14dp"
android:gravity="center"
android:textColor="#000" />
</RelativeLayout>
Now in MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
HorizontalListView listview = (HorizontalListView) findViewById(R.id.listview);
listview.setAdapter(mAdapter);
}
private static String[] dataObjects = new String[]{ "Text #1",
"Text #2",
"Text #3","Text #4","Text #5"};
private BaseAdapter mAdapter = new BaseAdapter() {
private OnClickListener mOnButtonClicked = new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("hello from " + v);
builder.setPositiveButton("Cool", null);
builder.show();
}
};
@Override
public int getCount() {
return image.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewitem, null);
// Initialize the views in the layout
ImageView iv = (ImageView) retval.findViewById(R.id.image);
int pos = position;
// Set the views in the layout
iv.setBackgroundResource(image[pos]);
TextView title = (TextView) retval.findViewById(R.id.title);
title.setText("newImage");
Button button = (Button) retval.findViewById(R.id.clickbutton);
button.setOnClickListener(mOnButtonClicked);
return retval;
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
Now in above code onclick of button event, they are able to get which button is clicked,
but I want to know of which image's button is clicked, as I want to add that image(clicked horizontal grid view image) in to verticale list image view.
Can anybody guide me how can I get to know which image's button is clicked?