i am working on CrossWord application for Android.
I have a gridview
public class MainActivity extends Activity {
private GridView gridView;
private Button button;
private ArrayAdapter<String> adapter;
static final String[] numbers = new String[] { "A", "B", "C", "D", "E",
"F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
"S", "T", "U", "V", "W", "X", "Y", "Z", "A", "B", "C", "D", "E",
"F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
"S", "T", "U", "V", "W", "X", "Y", "Z" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView) findViewById(R.id.gridView1);
button = (Button) findViewById(R.id.buttonSubmit);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, numbers);
gridView.setAdapter(adapter);
final StringBuilder sb = new StringBuilder();
gridView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
TextView tv = (TextView) v;
tv.setBackgroundColor(Color.GREEN);
tv.setTag("1");
Toast.makeText(getApplicationContext(),
((TextView) v).getText(), Toast.LENGTH_SHORT).show();
}
});
}
public void onSubmitClick(View v){
for(int i=0;i<adapter.getCount();i++){
String s = adapter.getItem(i);
}
}
xml file :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/buttonSubmit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Submit"
android:onClick="onSubmitClick">
</Button>
<GridView
android:id="@+id/gridView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/buttonSubmit"
android:layout_alignParentTop="true"
android:columnWidth="30dp"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="columnWidth" >
</GridView>
</RelativeLayout>
What i want is to iterate through gridview and find textviews with tag1 ... but adapter.getItem returns only string ... any help ?
You can iterate over all children of a GridView
(or any other ViewGroup
) with getChildAt()
:
for(int i = 0; i < myGridView.getChildCount(); i++) {
TextView child = (TextView) mGridView.getChildAt(i);
// do stuff with child view
}
Notice that sometimes a GridView
's child is another ViewGroup
, so you may need to loop through it's children, etc.
However... a better way to do this might be to keep a separate List
of "tagged" elements. You can simply add them to the list when tagged and iterate over the entire list.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With