마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리스트뷰 ListView 한줄에 여러 항목 추가 하는 방법

0 추천
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);  // 레이아웃 지정 해줌
        
        Spinner spinner = (Spinner) findViewById(R.id.selector1);  		// 셀렉터 선언 activity_main.xml에 선언 되어있는 selector1을 레이아웃 씌운다
        
        ArrayAdapter<String> adapter = new ArrayAdapter<String>			// 배열의 <String> 타입의 어댑터 선언 
        (this, android.R.layout.simple_spinner_dropdown_item, all_item);		// all_item은 윗 부분에 설정해준 static final String[] all_item을 가르킨다.
        spinner.setAdapter(adapter);
        
        alert=(Button)findViewById(R.id.imgbtn01);  // activity_main.xml에 선언된 이미지 버튼 아이디 값 R.id.imgbtn01
        alert.setOnClickListener(clickListener1);
        
        
        initalize(getApplicationContext());
        
        try {
        	//SQLiteDatabase db = SQLiteDatabase.openDatabase(PACKAGE_DIR + "M_T_in_time.db", null,
                 //   SQLiteDatabase.OPEN_READONLY | SQLiteDatabase.NO_LOCALIZED_COLLATORS);
        	SQLiteDatabase db = openOrCreateDatabase("M_T_in_time.db", Context.MODE_PRIVATE, null);
        	
        	// 쿼리로 db의 커서 획득
        	Cursor cur = db.rawQuery("SELECT * From M_T_in_time", null);
        	
        	// 커서를 처음으로 이동
        	cur.moveToFirst();
        	
        	// 읽은 값 출력하기
        	
        	ArrayList<String> stationTime = new ArrayList<String>();
        	ArrayList<String> townTime = new ArrayList<String>();
        	ArrayList<String> univTime = new ArrayList<String>();
        	
        	do{ 
        		//for (int i=0; i<1; i++){ // row 값이 3개 밖에 없으므로 for 문으로 3번 돌려주고
	        		int i=0;
        			stationTime.add(cur.getString(i));   // 0
        			townTime.add(cur.getString(i+1));  // 1 
        			univTime.add(cur.getString(i+2));   // 2
        		
        			/*
        			Log.i("move!!","" + cur.getString(i)); // 로그 출력문
        			TextView tv = (TextView)findViewById(R.id.listView1); // 텍스트뷰 레이아웃 설정해줌 엑티비티_메인에 선언해준 텍스트 뷰
        			tv.setText(cur.getString(i)); // 텍스트뷰 레이아웃에 뿌려준다 그런데 텍스트뷰는 하나 밖에 못넣는듯함
        			*/
	        //	}
	  			
    			ArrayAdapter<String> Adapter;
    			Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, stationTime);
    			
    			ListView listView1 = (ListView)findViewById(R.id.listView1);
    			listView1.setAdapter(Adapter);
        	
        	} while(cur.moveToNext()); // 그다음에 row값을 다음으로 넘겨준다.
   
        } catch (Exception e){
        Log.i("ERROR!!!!","" + e.toString());	
        }
        
    }

리스트뷰에 3가지 항목을 한줄에 넣고 싶은데 어떤 방법으로 해주어야 할까요??

지금은 리스트뷰 한줄에 하나의 항목만 들어가는데 리스트뷰 어떤 속성을 주어야 한줄에

3개의 항목을 넣을 수 있을 지 궁금합니다.

개님개님 (520 포인트) 님이 2015년 2월 1일 질문

1개의 답변

0 추천
 
채택된 답변

new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, stationTime);  를 쓰면

단순히 한 줄의 문자열로 된 리스트만 보여지게 됩니다.

Adapter 객체를 직접 구현하셔야 합니다.

보통 BaseAdapter 를 상속받아 구현하고,

말씀하신 3개의 항목 구성은 layout 폴더에 xml 파일을 생성하여

Adapter 의 getView에서 불러다 쓰면 됩니다.

http://berabue.blogspot.kr/2014/05/android-listview.html

위 포스팅의 커스텀 어댑터 부분 참고하세요~

가랑비 (10,530 포인트) 님이 2015년 2월 1일 답변
개님개님님이 2015년 2월 14일 채택됨
...