2010-08-07 6 views
0

사용자가 질문 목록을보기 시작하는 Android 앱을 만들고 있습니다. 사용자가 질문을 클릭하면 그 질문과 그 대답 대안을 포함하는 새로운 클릭 가능한 목록을 보여주고 싶습니다.Android에서 행의 내용을 목록으로 표시하는 방법은 무엇입니까?

내 질문은 데이터베이스의 행에 있습니다. 질문은 첫 번째 열에 표시되고, 답변은 다음 열에 표시됩니다.

나는 목록에서 질문을 클릭 할 때 행에서 하나의 요소 만 표시 할 수 있었지만 둘 이상의 표시 방법은 완전히 나를 벗어났다.

이것은 사용자가 질문을 클릭하면 입력 한 의도의 관련 소스 코드는 다음과 같습니다

private void fillData() { 
    Bundle extras = getIntent().getExtras(); 
    Long id = extras != null ? extras.getLong(QuestionsDbAdapter.KEY_ROWID) : null; 
    Cursor questionsCursor = mDbHelper.fetchQuestion(id); 
    startManagingCursor(questionsCursor); 
    String[] from = new String[]{mDbHelper.KEY_QUESTION, 
     mDbHelper.KEY_ALT1,mDbHelper.KEY_ALT2}; 
    int[] to = new int[]{R.id.text1}; 
    SimpleCursorAdapter questions = 
     new SimpleCursorAdapter(this, R.layout.questions_one_row, 
     questionsCursor, from,to); 
    setListAdapter(questions); 
} 

에만 질문을 표시합니다. Answer 대안 중 하나를 'String [] from ...'문에 넣으면 대신 표시됩니다.

답변

0

이렇게하면 질문 만 표시됩니다. 만 표시 한 가지로 이야기하기 때문이다

:

int[] to = new int[]{R.id.text1}; 

당신이 더 이상 일을 표시하려면, 당신은 당신의 to 배열에 두 개 이상의 요소가 필요합니다. 이상적으로는 from 배열의 길이와 to 배열의 길이가 동일해야합니다. 물론 res/layout/questions_one_row.xml 파일에 TextView 위젯이 추가로 필요하며이 파일의 android:id 값은 to 배열로 이동해야합니다.

+0

고마워요! 예, 모두 표시되지만 동일한 요소에 있으므로 클릭 할 수 없습니다. 나는 단지 모든 것을 클릭 할 수 있습니다, 질문, 답변 및 모두. 나는 그들이 목록에서 별도의 항목으로 선호합니다. – memius

+0

@ 톰 하겐 : 오. 이 경우 현재 코드의 상당 부분을 제거하고이를 대체해야합니다. 시나리오를 처리하는 자체 어댑터 (확장 BaseAdapter)를 만들어 행 수를 올바르게 계산해야합니다. 필요한 경우 getItemTypeCount() 및 getItemViewType()을 사용하여 질문과 답변의 형식을 다르게 지정할 수 있습니다. 등등. – CommonsWare

+0

나는 안드로이드와 자바 모두에게 완벽한 newb이다. 그러나 행을 열로 피벗시킬 수있는 한 줄짜리 어딘가에 setListAdapter에 보낼 수있는 매우 강한 느낌이있다. – memius

관련 문제