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

listView 의 객체를 생성해서 다른 레이아웃에 addView 를 한 후에 listView의 child의 값을 변경하고싶습니다.

0 추천

ListView 를 LinearLayout 을 상속받은 클래스에서 생성시키고 this.addView 해서 5개 정도의 ListView 가 들어있는 LinearLayout 이 있습니다. 

public class CostNumberFlip extends LinearLayout{

        public CostNumberFlip(Context pContext) {
		super(pContext);
		mContext = pContext;
		initView(pContext);
	}

	public void initView(Context pContext) {
		this.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
		this.setOrientation(LinearLayout.HORIZONTAL);

		mNumberList = new ListView(mContext);
                mNumberList.setAdapter(mScrollListViewAdapter);

                this.addView(mNumberList);
	}

이상황에서 이 클래스에서 setTextSize(int pSize) 라는 메소드를 만든후 메인 액티비티에서 

CostNumberFlip costNumber = (CostNumberFlip) findViewById(R.id.costnumber);
costNumber.setTextSize(30);

이런식으로 사용하고 싶습니다.

 

리스트뷰 어댑터의 getView 에선 TextView 만을 리턴 하고 있는 상황입니다. 

 

리스트뷰의 child 인 TextView 의 크기를 건드려야 될 것 같은데 그 방법을 여러가지 해봐도 잘 안될 뿐더러...

LinearLayout 에서 addView 한 모든 ListView 접근하여 그의 child 들을 변경 해야 하는데 ..

어떻게 해야 할까요 . .ㅠㅠ 전체적인 소스를 바라는게 아닙니다 힌트 부탁드릴게요 ㅠ

헐잘생겼다 (570 포인트) 님이 2014년 12월 4일 질문
헐잘생겼다님이 2014년 12월 4일 태그 변경

1개의 답변

0 추천
 
채택된 답변

-_- 수정합니다 죄송합니다..

1. SharedPreferences에 텍스트 크기 값을 저장한다.(아마 어댑터 만들기 전에)

SharedPreferences pref = ctx.getSharedPreferences("Pref", Context.MODE_PRIVATE);

SharedPreferences.Editor editor = pref.edit();
editor.putString("textSize", 초기값);
editor.commit();
 
2. 리스트뷰 어댑터에서 해당 textview의 textsize를 sharedpreferences에서 불러오게 바꿔줌.
 
        float size = Float.parseFloat(UserPrefController.getPref(context, textSize));
        텍스트뷰.setTextSize(Float.parseFloat(size)); <<단위가 sp가 아니라서 sp로 바꾸는 방법 찾아야 할거에요..
 
3. 크기 건들고 싶을 때 저 sharedpreferences 값 변경 하고 notifyDatasetChanged() 해 주세요.
 
        SharedPreferences.Editor editor = pref.edit();
        editor.putString("textSize", 바꿀크기);
        editor.commit();
 
        어댑터.notifyDatasetChanged();
 

@_@ 그전에 썼던 게 너무 횡설수설이라서 다시 수정했어요..

relz (2,550 포인트) 님이 2014년 12월 4일 답변
헐잘생겼다님이 2014년 12월 4일 채택됨
relz 님 정말 감사합니다. 말씀해주신 방법이 제꺼랑 왠지 맞는듯 하여 바로 적용해 보았는데 실행은 안되네요 ㅠㅠ 이방법으로 조금 더 해보고 안되면 다른 방법을 찾아봐야겠네요 ㅠ 답변 정말 감사드려요
헉 됩니다 relz 님 방법대로 하니까 되네요 !!! 제가 SharedPreferences 를 많이 사용 안해봐서 처음 시도 시에 SharedPreferences 에 대한 소스부분이 조금 잘못 되어있었는데 고치니까 됩니다!! 정말 감사합니다!!
되긴 되는데 이방법은 ListView의 Chlid 값 변경 하는 데에는 적합한 방법은 아닌것 같네요 ㅠㅠ 혹시라도 다른 방법 있으시면 더 조언들 해주시면 감사하겠습니다.
...