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

java 코드 내에서 리스트뷰의 텍스트 크기를 바꿀 수 있나요?

0 추천

주소록 예제를 참고해서 공부중인데.. 

이전에 만든 listview는 한 row 마다 들어갈 텍스트뷰나 체크박스,라디오버튼 등의 레이아웃을 마음대로 바꾸기 위해

xml을 따로 만들었는데요,

이 예제는 보니 listview만 참고하더라구요.. 안의 글씨크기나 라디오버튼 간격을 조정하려고 

1에서 2로 변경했는데요.

 

1.setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, new_name));

//new_name은 한 줄 마다 들어갈 전화번호부에 저장된 사람의 이름+번호..

2.

setListAdapter(new ArrayAdapter<String>(this, R.layout.listview_addr,R.id.addrText, new_name));
//listview_addr가 listview 한 줄마다 들어갈 텍스트뷰와 라디오버튼 xml입니다.
//addrText는 textView 아이디 입니다.
 
라디오버튼과 텍스트뷰는 제가 원하는데로 레이아웃이 나오는데, 문제는 기능 자체가 먹통이 되었네요.
라디오버튼
이것저것 고치다보니 어느 부분에서 실수했는지 모르겠습니다. 
1에서는 listView 한 줄을 클릭하면 라디오버튼이 눌리면서 해당 줄의 회원 정보를 toast로 팝업시켰었습니다.
 
그리고 질문대로, xml말고 코드 내에서 직접 text크기를 바꿀 수 있는 방법도 알고싶습니다..
 

		Cursor cursor = getURI(); // 전화번호부 가져오기
		int end = cursor.getCount(); // 전화번호부의 갯수 세기
		name = new String[end]; // 전화번호부의 이름을 저장할 배열 선언

		String[] bbStr = cursor.getColumnNames();
		for (int i = 0; i < bbStr.length; i++)
			// 각각의 컬럼 이름 확인
			Log.e(tag, "ColumnName " + i + " : " + cursor.getColumnName(i));

		if (cursor.moveToFirst()) { // 항상 처음에서 시작
			do {
				if (!cursor.getString(2).startsWith("01")) // 01로 시작하는 핸펀만
					continue; // 이멜주소만 있는것은 제외
				// 요소값 얻기
				name[count] = cursor.getString(1); // 이름
				name[count] += "   ";
				name[count] += cursor.getString(2); // 전번
				count++;
			} while (cursor.moveToNext());

			new_name = new String[count]; // 이멜주소 제외한 01번호 가져오기
			for (int i = 0; i < count; i++)
				new_name[i] = name[i]; // 복사
		}
		cursor.close(); // 반드시 커서 닫고
		setListAdapter(new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, // 멀티->싱글
				new_name));
		listView = getListView();
		listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); // 반드시 설정해줘야 싱글초이스
																
		listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				// String mes="";
				long num[] = listView.getCheckItemIds(); // 현재 체크된 id들의 배열 리턴
				// 화면표시 - 여기서 얻어온 값들 처리하심
				for (int i = 0; i < num.length; i++) {
					mes = name[(int) num[i]]; // position:위치
					mes += "\n";
				}
				Log.e(tag, mes); // 로그 출력
				Toast.makeText(address.this, mes, Toast.LENGTH_SHORT).show();
				// 전화번호 추출
				StringBuffer sb = new StringBuffer();
				for (int i = 0; i < mes.length(); i++) {
					if (Character.isDigit(mes.charAt(i))) {
						sb.append(mes.charAt(i));
					}
				}
				phoneText = sb.toString();
				// Toast.makeText(address.this, "전화번호:"+sb,
				// Toast.LENGTH_SHORT).show();

			}
		});

이전에 만들었던 리스트뷰로 다시 수정 중인데, 조언 해주시면 감사하겠습니다.

 

 

 
 
 
anci (19,950 포인트) 님이 2014년 4월 28일 질문

1개의 답변

+2 추천
 
채택된 답변
http://developer.android.com/reference/android/widget/TextView.html

위를 보면 아시겠지만 xml 코드에 대응되는 자바 코드가 있습니다. 참고하시고 수정하시면 됩니다.
인연 (31,880 포인트) 님이 2014년 4월 29일 답변
anci님이 2014년 4월 29일 채택됨
어제 밤에 구글링해서 스스로 해결했습니다 ㅎㅎ;;
알려주신 방법으로도 공부해보겠습니다. 감사합니다.
...