brunch

You can make anything
by writing

C.S.Lewis

by 윤형도 Mar 08. 2016

빠르게 배우는 안드로이드 -13  ListView-4

OnItemClickListener + Toast




에 어서 진행합니다

이번시간에는 우리가 만들었던 리스트뷰에 이벤트를 추가해보도록하겠습니다. 
리스트뷰에서 아이템을 누르면 나타는 이벤트이기때문에 onItemClickListener를 ListView에 추가해 주어야합니다.

이벤트를 추가하는 방법은





와 같은 방법으로 진행됩니다.


기존의 코드에서 listView에 onItemClickListener를 추가하도록하겠습니다.


public class MainActivity extends AppCompatActivity {
    ListView listView;
    MyListAdapter myListAdapter;
    ArrayList<list_item> list_itemArrayList;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list_itemArrayList = new ArrayList<list_item>();
        listView = (ListView)findViewById(R.id.my_listView);
        String temp ="https://cdn-images-1.medium.com/fit/c/36/36/0*HgJ2Psmia7PjQsp9.jpg";

        list_itemArrayList.add(new list_item("https://cdn-images-1.medium.com/fit/c/36/36/0*HgJ2Psmia7PjQsp9.jpg","보라돌이","제목1",new Date(System.currentTimeMillis()),"내용1"));
        list_itemArrayList.add(new list_item("https://cdn-images-1.medium.com/fit/c/36/36/0*HgJ2Psmia7PjQsp9.jpg","뚜비","제목2",new Date(System.currentTimeMillis()),"내용2"));
        list_itemArrayList.add(new list_item("https://cdn-images-1.medium.com/fit/c/36/36/0*HgJ2Psmia7PjQsp9.jpg","나나","제목3",new Date(System.currentTimeMillis()),"내용3"));
        list_itemArrayList.add(new list_item("https://cdn-images-1.medium.com/fit/c/36/36/0*HgJ2Psmia7PjQsp9.jpg","뽀","제목4",new Date(System.currentTimeMillis()),"내용4"));
        list_itemArrayList.add(new list_item("https://cdn-images-1.medium.com/fit/c/36/36/0*HgJ2Psmia7PjQsp9.jpg","햇님","제목5",new Date(System.currentTimeMillis()),"내용5"));




        myListAdapter = new MyListAdapter(MainActivity.this,list_itemArrayList);
        listView.setAdapter(myListAdapter);

//onItemClickListener를 추가

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        
    }
});

    }
}




다음과 같은 파라미터가 주어집니다. ArrayList에 position 에 해당하는 아이템과 리스트뷰에 각 Item의 Position에 있는 것이 같기 때문에 이 Position 파라미터를 이용하면 됩니다.


public void onItemClick
(AdapterView<?> parent, View view, int position, long id) {

    }



우리는 Toast를 이용하여 클릭시에 Toast를 출력해보도록하겠습니다.
Toast가 모르시면 따라하시면 어떤것인지 금방 알수있습니다.

Toast는 다음과 같은 파라미터를 요구합니다.

어떤 스크린에 보여줄것인지를 알기위해 context를

어떠한 문자를 출력할것인지를 넣는 char text->이부분은 String을 넣으시면됩니다.

int duration은 지속시간을 나타내는 파라미터입니다.

1000이 1초 인 밀리세컨드 단위로 되어있습니다.

보통 Toast 에 static으로 선언되어있는

Toast.LENGTH_LONG 이나 Toast.LENGTH_SHORT을 입력하는것이 대부분입니다.

다음과같이 입력하여 닉네임을 출력하도록 만들겠습니다.


Toast.makeText(MainActivity.this ,list_itemArrayList.get(position).getNickname(),Toast.LENGTH_LONG).show();



다음과 같이 나오는것을 확인할수있습니다.

매거진의 이전글 빠르게 배우는 안드로이드 -12   ListView-3
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari