탭호스트내에서 그리드뷰 사용시
아이템클릭 이벤트가 발생하지가않습니다
한번살펴봐주시면 감사하겠습니다
소스 첨부파일로동봉
package com.my.testgrid;
import java.util.ArrayList;
import android.app.Activity;
import android.app.TabActivity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TabHost;
import android.widget.TableRow;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TabHost.TabSpec;
import android.widget.TableLayout;
import android.widget.TextView;
import android.widget.Toast;
class IconListData {
public int resId;
public String name;
public IconListData(int resId, String name) {
this.resId = resId;
this.name = name;
}
}
public class TestTabGrid extends TabActivity {
/** Called when the activity is first created. */
private ArrayList<IconListData> mNetList;
private ArrayList<IconListData> mToolList;
private TabHost cTabHost;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
cTabHost = getTabHost();
LayoutInflater.from(this).inflate(R.layout.main, cTabHost.getTabContentView(), true);
Drawable img = getResources().getDrawable(R.drawable.star);
cTabHost.addTab(cTabHost.newTabSpec("netGrid")
.setIndicator("tab3", img)
.setContent(R.id.netGrid));
cTabHost.addTab(cTabHost.newTabSpec("toolGrid")
.setIndicator("tab4", img)
.setContent(R.id.toolGrid));
cTabHost.setCurrentTab(0);
mNetList = new ArrayList<IconListData>();
IconListData arr = new IconListData(R.drawable.star, "tab");
mNetList.add(arr);
arr = new IconListData(R.drawable.star, "grid");
mNetList.add(arr);
GridView gr = (GridView) findViewById(R.id.netGrid);
gr.setAdapter(new IconAdapter(this));
gr.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(TestTabGrid.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
mToolList = new ArrayList<IconListData>();
arr = new IconListData(R.drawable.star, "item1");
mToolList.add(arr);
arr = new IconListData(R.drawable.star, "item2");
mToolList.add(arr);
arr = new IconListData(R.drawable.star, "item3");
mToolList.add(arr);
GridView gr2 = (GridView) findViewById(R.id.toolGrid);
gr2.setAdapter(new IconAdapter(this));
gr2.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(TestTabGrid.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
}
public class IconAdapter extends BaseAdapter {
private IconListData temp;
public IconAdapter(Context c) {
}
public View getView(int position, View convertView, ViewGroup parent) {
Button b;
if (convertView == null) {
b = new Button(TestTabGrid.this);
b.setLayoutParams(new GridView.LayoutParams(50, 50));
} else {
b = (Button) convertView;
}
if(cTabHost.getCurrentTab() == 0){
temp = mNetList.get(position);
b.setText(temp.name);
b.setBackgroundResource(temp.resId);
}else if(cTabHost.getCurrentTab() == 1){
temp = mToolList.get(position);
b.setText(temp.name);
b.setBackgroundResource(temp.resId);
}
return b;
}
public final int getCount() {
int size = 0;
if(cTabHost.getCurrentTab() == 0)
size = mNetList.size();
else if(cTabHost.getCurrentTab() == 1)
size = mToolList.size();
return size;
}
public final Object getItem(int position) {
IconListData temp2 = null;
if(cTabHost.getCurrentTab() == 0)
temp2 = mNetList.get(position);
else if(cTabHost.getCurrentTab() == 1)
temp2 = mToolList.get(position);
return temp2;
}
public final long getItemId(int position) {
return position;
}
}
}