기본 콘텐츠로 건너뛰기

[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] 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>             ...

[android] 액션 버튼 아이콘 변경 (Action item icon)

invalidateOptionsMenu(); 를 사용하여 onPrepareOptionsMenu함수를 호출 할 수 있다는 점을 이용. bchange 의 여부에 따라서 아이콘을 변경할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 @Override      public   void  onPrepareOptionsMenu(Menu menu) {          if (bchange)         {             menu.findItem(R.id.menu_test).setIcon(R.drawable.btngrid);         }          else         {             menu.findItem(R.id. menu_test ).setIcon(R.drawable.btnlist);         }          super .onPrepareOptionsMenu(menu);     } Color...