기본 콘텐츠로 건너뛰기

[android] listview 구현하기

<main.xml>
android:divider -> 리스트의 셀사이의 선색
android:dividerHeight -> 리스트의 셀사이 선 두께
1
2
3
4
5
6
7
<ListView
     android:id="@+id/list"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:divider="#ff0000"
     android:dividerHeight="1dp" >
</ListView>
cs


<MainActivity.java>

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
ArrayList<String> m_arr;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        m_arr = new ArrayList<String>();
        m_arr.add("김수현");
        m_arr.add("송중기");
        m_arr.add("비스트");
        
        ArrayAdapter<String> m_Adapter  = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, m_arr);
        ListView m_list = (ListView)findViewById(R.id.list);
        m_list.setOnItemClickListener(mItemClickListener);
        m_list.setAdapter(m_Adapter);
    }
    
    AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position , long id)
        {    
            Toast.makeText(MainActivity.this, m_arr.get(position), Toast.LENGTH_SHORT).show();
        }
    };
cs


고정적인 문자열일 경우 ArrayList대신 사용가능한 방법.

* 단순배열로 가능.
   String[] str = {"이기광","윤두준","양요섭", "용준형"};

* 리소스에 정의한 후 읽어오는 방법.(고정적인 문자열이라면 추천)
   1. values/array.xml 파일 생성(File > New > Other > Android XML Values File)
   2. Add... > String Array > OK > Name지정





















 3. Add... > Item > OK > Value값 입력
 4. Item을 모두 추가한후 arrays.xml을 확인해보면 다음과 같이 생성.
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="name">
        <item >이기광</item>
        <item >윤두준</item>
        <item >용준형</item>
        <item />
    </string-array>
</resources>
cs

5. MainActivity.java에서 createFromResource를 사용하여
1
 ArrayAdapter<CharSequence> m_Adapter = ArrayAdapter.createFromResource(this, R.array.name, android.R.layout.simple_list_item_1);
cs




댓글

이 블로그의 인기 게시물

[android] viewPager setOffscreenPageLimit 미리 로딩하기

viewpager를 사용할 때 이전 혹은 다음페이지를 몇개까지 미리 로딩할지 정하는 함수이다. 전체 5page가 있는데 현재 1page를 보고 있다고 가정했을 때  2, 3, 4, 5페이지를 모두 미리 로딩하고 싶다면 setOffscreenPageLimit(4)를 사용하면 된다. 따로 setOffscreenPageLimit 를 지정하지 않았을 경우, default값은 1이다. 다음과 같이 적용가능 하다. Colored By Color Scripter ™ 1 2 3 ViewPager mViewPager = (ViewPager) findViewById(R.id.pager);         mViewPager.setAdapter(storePagerAdapter);          mViewPager.setOffscreenPageLimit(4) ;

[android] textview 옆에 image 추가하기.

xml페이지에 다음과 같이 구현 android:drawableLeft  : 텍스트 왼쪽에 이미지 추가. android:drawableRight : 텍스트 오른쪽에 이미지 추가. Left, Right 외에도 top, bottom, start, end가 있다. android:drawablePadding : 이미지의 공간 (텍스트와 이미지 사이의 간격을 띄울 때 주로 사용.) <TextView           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:text="오른쪽에 마크"           android:drawableRight="@drawable/mark"           android:drawablePadding="10dp" />

[android] url scheme 사용하기 (웹에서 앱 호출 및 앱에서 앱 호출)

[호출될 앱] 다른 앱이나 웹에서 호출될 앱의 AndroidManifest.xml 파일을 열어 원하는 activity에 아래와 같이 빨간 부분을 추가 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <activity             android:name= ".testUrlScheme"             android:label= "@string/app_name" >             <intent-filter>                 <action android:name= "android.intent.action.MAIN"  />                 <category android:name= "android.intent.category.LAUNCHER"  />             </intent-filter>             ...