2013-06-25 1 views
0

질문이있는 응용 프로그램에 SQLite 테이블이 있습니다. 사용자가이 테스트를 수행 할 수있는 활동은 처음에 첫 번째 질문을로드 한 후 다음을 누를 때마다 질문의 텍스트를 설정하고 textView를 SQLite 테이블의 다음 행에 응답합니다.android에서 하나의 활동 내에서 동적으로 여러 레이아웃로드

문제는 사용자가 대답을 클릭하여 다음 질문으로 이동할 수있게하려는 경우 해당 질문이 이전 질문 버튼을 누르면 강조 표시/선택 상태로 유지되기를 원합니다. 가장 좋은 방법은 모든 질문을 활동 내에서 별도의 레이아웃으로로드하고 활동을 한 번에 하나씩 표시하는 것입니다.

매번 루프를 돌리거나 메모리를 죽일 수 있습니까?

답변

1

여러 가지 이유로이 작업을 수행하지 않으려합니다. 하나의 Activity에 복수의 layouts을 갖는 것은 거의 불가능합니다. 나는 당신의 layout이 어떻게 보일지는 모르지만 동적으로 parent and child views을로드 할 수 있습니다. 이것은 매번 질문의 개수를 모르는 경우에하고 싶은 일일 것입니다.

당신은

TextView question = new TextView(this); 

같은과 함께 View를 만들 수 있습니다

addView()가 당신은 할 수 있습니다

가, 때마다 당신이를 필요 별도의 파일에 LinearLayoutinflate

layout로에 추가 새로운 질문을하고 그에 따라 Views을 설정하십시오.

또 다른 옵션, 당신은 그들이 Button

textView.setVisibility(View.VISIBLE); 
를 클릭하면 XML에서 그들을 만든 다음 XML에 visibility 재산 android:visibility="invisible"을 사용하는 Java에 visible로 변경하는 것입니다 Viewslayout에 있어야 얼마나 많은 알고있는 경우

정확히 무엇을 모른 채 모범을 보이기는 어렵지만이 두 가지 옵션 중 하나를 살펴 보도록 권합니다.

대용량 인 경우 고려할 수있는 다른 하나의 옵션 layout 각 질문/답변에 대해 또는 재사용 가능하도록하려면 <include> 태그를 사용하여 각각 layout에 각 파일을 포함 시키십시오. 이런 식으로 수행하는 visibility 속성을 사용하고 별도의 파일을 사용할 수도 있습니다. 당신은 그냥 setContentView() 번을 여러 번 호출하는 것을 피하기를 원합니다. 왜냐하면 그것이 당신의 Views을 모두 기본값으로 설정하고 더 많은 문제를 야기 할 수 있기 때문입니다.

0

앞에 모든 레이아웃을로드하는 대신 sqlite에도 응답을 저장하고 해당 화면이 다시로드 될 때 값을 설정해야합니다. 그래서 흐름이 갈 것입니다 :

에서 onCreate -> 설정 내용보기

onResume -> 답변이 SQLite는 쿼리에 문제가있는 경우, 확인. 대답이 있으면 값을 설정하십시오. onPause

- 대답이 설정되어있는 경우>, 상점은 당신이 아마 그들이 다음 버튼을 클릭하면 저장하려면, 사실

sqlite를합니다 .. 그런 다음 새로운 활동을 열고있다 onPause 경우 비록 차례 호출에서 그 의지 .

관련 문제