안드로이드 개발 질문/답변
(글 수 45,052)
listview 구현 (단순 정보 제공용으로다가..)
한가지 질문이 있는데요.
단순 정보 제공용으로다가..제가 대학교내에 있는 각시설(재무실,취업정보센터,휴계실,영성교육상담실 기타등등..) 들을 리스트뷰로 쫙나열해서
원하는 곳을 클릭시 (예를 들자면 리스트뷰에있는 재무실을 눌렀을 떄 재무실은 어떤곳이면 어떻게 찾아가고 ~~기타등등 설명을 써넣으려고함) 정보를 출력을 하고자 하는데 sql을 구지 써서 해야되나요?ㅜ
제가 데이터베이스쪽은 잼병이라 -0-;;
이런 일을 가장 간단히 표현할 수 있는 방법이 무었이 있을까요 ㅎ
2010.05.03 00:37:31
각 시설과 시설에 대한 설명을 담고 있는 클래스를 만드신 후
ArrayAdapter의 generic-type을 그 클래스로 두시고, 클릭 시
그 클래스에 접근하셔서 설명을 읽어와 보여주는 식으로 처리하시면
될 것 같네요.
물론 제일 간단한건 코드상에 박는건데 조금더 체계적으로 하시려면
xml 파일을 구성하신 다음 파싱하셔서 리스트뷰에 뿌려줘야겠죠~
2010.05.03 08:26:40
대략 이런 형태가 되겠네요.
나가야해서 급히 가져다가 붙이느라 최종코드는 아니지만 대충 이해가실거에요
public class TestActivity extends ListActivity {
/** Called when the activity is first created. */
private ArrayList<MyData> list;
private CustomAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.facility_list);
list = new ArrayList<MyData>();
for(int i = 0; i < 30; i++)
list.add(new MyData("시설명", "설명"));
adapter = new CustomAdapter(this, R.layout.row_list, list);
setListAdapter(adapter);
}
private class MyData()
{
private String facility;
private String explain;
// Getter, Setter
}
private class CustomAdapter extends ArrayAdapter<MyData>
{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = convertView;
if(v == null)
{
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row_list, null);
}
TextView tv = (TextView)v.findViewById(R.id.TextViewItem);
tv.setText(list.get(position).getFacility);
return v;
}
public CustomAdapter(Context context, int textViewResourceId,
List<MyData> objects) {
super(context, textViewResourceId, objects);
// TODO Auto-generated constructor stub
}
}
}