기존의 프로젝트에서 버튼을 사용해서 갤러리와 이미지 처리 activity로 각각 넘어갔었다.
미관상.. 보기 불편해서 gridview로 이쁘게 만들까 하다가,
원래 기획대로 리스트뷰로 재구성해봤다.
listView라는 empty activity를 하나 생성해주었다.
- activity_list_view.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.bg_rem.act.activity.listView"
tools:showIn="@layout/activity_list_view">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
ListView는 EditText 나 ImageView와 같이 사용자가 정의한 데이터 목록을 아이템 단위로 구성하여 화면에 출력하는 ViewGroup의 종류이다.
ListView에 사용자 지정 데이터를 활용해 화면에 표시하기 위해서는 Adapter 클래스를 사용해야 한다.
사용자 데이터와 화면 출력 View 의 두 부분을 이어주는 역할이라고 보면 된다.
- listView.java
public class listView extends AppCompatActivity {
private final String TAG = getClass().getSimpleName();
// 카테고리 커스텀 지정
static final String[] LIST_MENU = {"Jacket", "Top", "Bottom", "Shoes", "Accs", "Image upload"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view);
Intent myIntent = getIntent(); // gets the previously created intent
String userId = myIntent.getStringExtra("firstKeyName");
String addr = myIntent.getStringExtra("server_addr");
// string 배열을 입력으로 받기 때문에 ArrayAdapter를 사용.
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, LIST_MENU) ;
ListView listview = (ListView) findViewById(R.id.listView);
listview.setAdapter(adapter);
// 해당 선택 사항의 문자열 데이터를 받아온다.
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View v, int position, long id) {
// position으로 해당 값을 받아와서 원하는 처리를 할 수 있다.
String strText = (String) parent.getItemAtPosition(position) ;
if (strText.equals("DEFAULT_STRING")) {
...
}
else {
...
}
}
}) ;
}
}
안드로이드 디바이스에서의 모습을 확인해본 결과는 다음과 같다.
버튼으로 구성되어 있을 때 보다 낫다.
REFERENCE
1. ListView 사용 관련 참고
안드로이드 리스트뷰 기본 사용법. (Android ListView)
1. 안드로이드 ListView ListView는 사용자가 정의한 데이터 목록을 아이템 단위로 구성하여 화면에 출력하는 ViewGroup의 한 종류입니다. ListView의 아이템들은 세로 방향으로 나열되며, 아이템의 개수
recipes4dev.tistory.com
'모바일앱 프로젝트' 카테고리의 다른 글
AWS 사용 종료하기 (0) | 2021.04.29 |
---|---|
안드로이드 Spinner (ComboBox, Select input) 만들기 (0) | 2021.03.30 |
안드로이드 로딩 화면 만들기 (java) (0) | 2021.03.23 |
Retrofit 라이브러리에서 timeout 세팅하기 (0) | 2021.03.22 |
안드로이드 이미지 서버로 전송 시 회전하는 문제 해결하기 (0) | 2021.03.20 |
댓글