반응형
아.. 공부하기 싫어 싫어 ~_~
그래도 뭐.. 틈틈이 어쩌다 공부 한 거를 좀 올려놓고 정리 좀 해야 겠다.
머리속에는 이것저것 만들어 보고 싶은게 있는데 기술이 딸리니 어떻게 진행이 안 된다. ㅋ
일단 그리드뷰를 한번 만들어 보기로 했다.
처음에는 이게 뭔가.. 막막했던 것들이 자꾸 보다 보니까 조금씩 정말 조금씩 눈에 들어 오기 시작한다.
여기저기꺼 참고해서 맨들었삼.
[main.xml]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="그지같지만 이건 그리드다"
/>
<GridView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:numColumns="3"
android:columnWidth="60dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="그지같지만 이건 그리드다"
/>
<GridView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:numColumns="3"
android:columnWidth="60dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
</LinearLayout>
[GridTest.java]
package kei.gridtest;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class GridTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView grid = (GridView)findViewById(R.id.grid);
ImageAdapter Adapter = new ImageAdapter(this);
grid.setAdapter(Adapter);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView grid = (GridView)findViewById(R.id.grid);
ImageAdapter Adapter = new ImageAdapter(this);
grid.setAdapter(Adapter);
// 여기서 클릭 이벤트 발생시켜도 된다.
// grid.setOnItemClickListener(new OnItemClickListener() {
// public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Toast.makeText(GridTest.this, position + "번째 선택", Toast.LENGTH_SHORT).show();
// }
// });
}
}
// grid.setOnItemClickListener(new OnItemClickListener() {
// public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Toast.makeText(GridTest.this, position + "번째 선택", Toast.LENGTH_SHORT).show();
// }
// });
}
}
class ImageAdapter extends BaseAdapter {
private Context mContext;
String[] gridArr = { "곰", "문어", "멍멍이", "호랑이" };
public ImageAdapter(Context c) {
mContext = c;
}
mContext = c;
}
public int getCount() {
return 9;
}
return 9;
}
public Object getItem(int position) {
return gridArr[position % 4];
}
return gridArr[position % 4];
}
public long getItemId(int position) {
return position;
}
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v;
if (convertView == null) {
v = new TextView(mContext);
((TextView)v).setText(gridArr[position % 4]);
} else {
v = convertView;
}
v.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new AlertDialog.Builder(v.getContext())
.setTitle(((TextView)v).getText())
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.dismiss();
}
})
.show();
}
});
View v;
if (convertView == null) {
v = new TextView(mContext);
((TextView)v).setText(gridArr[position % 4]);
} else {
v = convertView;
}
v.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new AlertDialog.Builder(v.getContext())
.setTitle(((TextView)v).getText())
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.dismiss();
}
})
.show();
}
});
return v;
}
}
}
}
반응형
댓글