안드로이드 개발 질문/답변
(글 수 45,052)
package com.Kong;
import java.util.ArrayList;
import java.util.Calendar;
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class ListExample extends ListActivity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
Calendar c = Calendar.getInstance();
int nYear = c.get(Calendar.YEAR);
int nMonth = c.get(Calendar.MONTH)+1;
int nDay = c.get(Calendar.DAY_OF_MONTH);
String today = Integer.toString(nYear) + Integer.toString(nMonth) + Integer.toString(nDay);
String dDay = "20101129";
Toast.makeText(this,today, Toast.LENGTH_LONG).show();
ArrayList<Person> m_orders = new ArrayList<Person>();
if (Integer.parseInt(today) >= Integer.parseInt(dDay))
{
Person p1 = new Person(R.drawable.c01, "고구마케익", "고소함과 부드러움이 한층 깊이 느껴지는 인기 만점의 케익", "1");
m_orders.add(p1);
} else
{
Person p1 = new Person(R.drawable.c01, "고구마케익", "고소함과 부드러움이 한층 깊이 느껴지는 인기 만점의 케익", "1");
Person p2 = new Person(R.drawable.c02, "녹차케익", "향이깊고 부드러운 카스테라가 입에서 살살녹아들어 웰빙식품", "2");
Person p3 = new Person(R.drawable.c03, "망고무스케익", "열대과일의 시원함을 한껏 느낄수 있는 케익", "3");
Person p4 = new Person(R.drawable.c04, "모카케익", "진한 모카향과 부드러운 카스테라가 장점으로 입에서 살살 녹아내리는 맛", "4");
Person p5 = new Person(R.drawable.c05, "블루베리치즈케익", "치즈와 가장 잘 어울리는 블루베리를 토핑", "5");
Person p6 = new Person(R.drawable.c06, "산딸기무스케익", "산딸기 맛의 특징인 새콤한 맛을 살려놓은 케익", "6");
Person p7 = new Person(R.drawable.c07, "초코무스케익", "달콤한 쵸코렛을 함유. 무스케익을 처음 접하는 분들께 권해드리는 케익", "7");
Person p8 = new Person(R.drawable.c08, "초코티라미스케익", "크림치즈맛에 단맛을 가미하여 부담없이 크림치즈 맛을 느낄수 있게 만든 케익 ", "8");
Person p9 = new Person(R.drawable.c09, "크림치즈케익", "젊은 여성분들을 유혹하기에 더할 나위 없는 케익", "9");
Person p10 = new Person(R.drawable.c10, "키리쉬케익", "달콤한 쵸코렛과 부드러운 생크림속에 감추어진 체리필링의 터지는 맛이 일품인 케익", "10");
Person p11 = new Person(R.drawable.c11, "타르트치즈케익", "하단에 쿠키를 샌드. 크림치즈와 입에서 씹히는 쿠키맛이 잘 어울리는 타르트 고유의 케익", "11");
Person p12 = new Person(R.drawable.c12, "티라미스케익", "마스카포네 치즈가 듬뿍 함유되어 아주 색다른 맛을 지니고 있는 케익", "12");
Person p13 = new Person(R.drawable.c13, "호박무스케익", "어울리지 않을듯 하면서 맛있는 호박무스케익 ", "13");
m_orders.add(p1);
m_orders.add(p2);
m_orders.add(p3);
m_orders.add(p4);
m_orders.add(p5);
m_orders.add(p6);
m_orders.add(p7);
m_orders.add(p8);
m_orders.add(p9);
m_orders.add(p10);
m_orders.add(p11);
m_orders.add(p12);
m_orders.add(p13);
}
PersonAdapter m_adapter = new PersonAdapter(this, R.layout.row, m_orders);
setListAdapter(m_adapter);
m_adapter.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
// TODO Auto-generated method stub
PersonAdapter Item = (PersonAdapter)m_orders.getToastText();
String data = Item.getToastText();
Toast.makeText(getApplicationContext(),"", 1).show();
}
});
}
private class PersonAdapter extends ArrayAdapter<Person>
{
private ArrayList<Person> items;
public PersonAdapter(Context context, int textViewResourceId, ArrayList<Person> items)
{
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View v = convertView;
if (v == null)
{
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
Person p = items.get(position);
if (p != null)
{
ImageView pt = (ImageView) v.findViewById(R.id.photo);
TextView tt = (TextView) v.findViewById(R.id.toptext);
TextView bt = (TextView) v.findViewById(R.id.bottomtext);
TextView ttt = (TextView) v.findViewById(R.id.toastText);
if (pt != null)
{
pt.setImageResource(p.getPhoto());
}
if (tt != null)
{
tt.setText("* 종류 : " + p.getName());
}
if(bt != null)
{
bt.setText("* 설명 : " + p.getNumber());
}
if(ttt != null)
{
bt.setText(p.getToastText());
}
}
return v;
}
}
class Person
{
private String Name;
private String Number;
private int Photo;
private String ToastText;
public Person(int _Photo, String _Name, String _Number, String _ToastText)
{
this.Photo = _Photo;
this.Name = _Name;
this.Number = _Number;
this.ToastText = _ToastText;
}
public int getPhoto()
{
return Photo;
}
public String getName()
{
return Name;
}
public String getNumber()
{
return Number;
}
public String getToastText()
{
return ToastText;
}
}
}
커스텀뷰 요번에 처음공부하는데..토스트창을 띄우고싶은ㄷ에
m_adapter.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
// TODO Auto-generated method stub
PersonAdapter Item = (PersonAdapter)m_orders.getToastText();
String data = Item.getToastText();
Toast.makeText(getApplicationContext(),"", 1).show();
}
});
여기서 아예 막혔습니다. 이 부분수정중인데 수정도 못하겠고..창띄우고싶은 문구는
TextView ttt = (TextView) v.findViewById(R.id.toastText); 이부분의 문구인데
위에 p1,p2,p3 보며은 숫자 1,2,3,4,5,6....이부분입니다..
고수님들 도와주세요 ㅠㅠ