티스토리 뷰

이전 포스팅에서 ListViewAdapter까지 보았는데요! 마무리 지어보도록 하겠습니다.

 

MainActivity.java

package com.example.custom_listview_exercise;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private ListView listView;
    private TextView text1, text2;
    private Button listButton;
    private ListViewAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (ListView) findViewById(R.id.custom_listview);
        text1 = (TextView) findViewById(R.id.listview_item_text1);
        text2 = (TextView) findViewById(R.id.listview_item_text2);
        listButton = (Button) findViewById(R.id.listview_item_button);

        adapter = new ListViewAdapter();
        listView.setAdapter(adapter);

        for (int i = 0; i < 10; i++) {
            adapter.AddItem(i+1+"번째 아이템",i+1+"번째 속성");
        }
    }
}

adapter.AddItem을 통해 text의 값을 set 해줍니다.

AddItem은 ListViewAdapter의 add_item 메소드인데 제가 이름만 바꿨습니다.

 

이제 해당 리스트뷰의 아이템의 버튼을 클릭했을 때 이벤트 처리를 해보겠습니다.

Button listButton = (Button) convertView.findViewById(R.id.listview_item_button);
        listButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(v.getContext(), position+1+"번째 아이템이 클릭되었습니다.",Toast.LENGTH_SHORT).show();
            }
        });

ListViewAdapter 클래스의 getView 메소드에 해당 버튼 클릭 이벤트 처리를 해줍니다.

다른 액티비티로 넘어가려면 Intent를 하면 되겠죠?

커스텀 리스트뷰의 예제가 완료되었습니다!!

 

api서버를 이용해 각 아이템의 text에 데이터를 넣고싶으신 분들은 제 예제를 기준으로 본다면

MainActivity 클래스에서 AsyncTask를 통해 서버 데이터를 가져온 뒤 adapter.AddItem을 UI Thread에서 처리 해 주시면 됩니다! AsyncTask 예제는 제 로그인 구현 포스팅에 나와있으니 참고하시길 바랍니다.

'Android' 카테고리의 다른 글

[Android] LiveData 소개  (0) 2020.08.10
[Android] Room 소개  (0) 2020.08.03
<Android> 로그인 기능 구현 (2)  (0) 2020.07.28
<Android> custom listview 생성하기 (1)  (0) 2020.07.24
<Android> Activity 스택 제거  (0) 2020.07.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함