2012-02-14 2 views
0

내 안드로이드 애플 리케이션에 4 개의 버튼이 있습니다. 어떤 답변을 그들에 그리고 사용자가 오른쪽 버튼을 클릭하면 다음 질문으로 간다. 문제는 내가 작은 전화로 대답 버튼은 버튼 텍스트 상자의 하단에 주위에 랩이 있기 때문에 적은 영역을 가지고 있습니다. 버튼에 스크롤링이 가능하지만 사용자가 버튼을 클릭하여 아래로 스크롤하면 버튼도 클릭됩니다. 이 문제를 해결할 방법이 있습니까? 나는 google에 찾았지만 어떤 해결책도 찾을 수 없다.안드로이드 응답 버튼, 스크롤 방법

예를 들어 질문은 세계에서 가장 부유 한 사람입니다. 답 : 빌 게이츠. 버튼이 작 으면 빌과 게이츠가 숨겨 질 것입니다.

답변

0

예, 있습니다.

더 나은 사용자 경험을 위해 레이아웃을 변경해야합니다. 보통 버튼 라벨은 긴 정보를 쓰는 것이 좋지 않습니다. 2 개 구성 요소

당신이 질문을
  • 의 ListView를 넣어
    1. 텍스트 뷰를 가져야한다

      당신의 "QuestionActivity"(나는이처럼이 생각하는 "누가 백만장자가되고 싶어?"템플릿) 네이티브로 수직으로 스크롤 할 수있는 N 개의 응답을 넣으므로 각 대답에 대해 훨씬 더 많은 공간을 유지할 수 있습니다.

    방금 ​​ArrayAdapter를 사용해야하고 많은 작업이 필요합니다. 더 나은 솔루션.

  • +0

    그렇다면 오른쪽 목록 상자를 이해하면 세로로 스크롤 할 수 있으며 클릭하면 단추처럼 작동합니까? 또한 ArrayAdapter는 무엇을 할 것인가? – NoviceMe

    +0

    ListView에 "OnItemClickListener"를 설정해야합니다. 어댑터는 ListView에 데이터 (사용자 응답)를 제공하여 올바른 렌더링을 허용합니다. –

    0

    아마도 자신 만의 Button 컨트롤을 만들고 onTouch 동작을 구현할 수 있습니다.

    대신에 각 항목이 답변 인 항목 목록을 만드는 것이 좋습니다. 목록은 기본적으로 스크롤 할 수 있습니다. 또한 항목을 클릭 이벤트에 연결할 수 있습니다. 적절한 선택기를 사용하여 목록 항목을 단추처럼 보이게 할 수도 있습니다.

    +0

    아니요 목록이 아닙니다. 그것은 똑같은 두 줄의 대답과 같습니다. 예를 들어 질문은 세계에서 가장 부유 한 사람입니다. 답 : 빌 게이츠. 버튼이 작 으면 빌과 게이츠가 숨겨 질 것입니다. – NoviceMe

    0

    나는 ListView이 문제를 해결할 것이거나 필요하지 않을 것이라고 생각하지 않습니다. 당신은 어쩌면 당신의 마음 속에 대답으로 선택을위한 고정 된 숫자를 가지고있을 것입니다.

    • a.
    • b.
    • c.

    따라서 N의 답변을 입력하면 문제가 해결됩니다.

    목록보기

    예 기본적으로 스크롤이지만, 항목이 없습니다. 그리고 실제로 필요한 것입니다. 그래서이 접두사 Buttons/클릭 TextViews 기본적으로 디자인/사용성 문제가 실제 문제에 관해서는


    , 단순히 다음 질문으로 (진행 답을 선택하는 다른 버튼을 사용하는 것이 좋습니다 계속 .. .기타.).(사용자가 물건을 스크롤 대답에 대한 자신의 마음을 변경하려고 할 때)

    enter image description here

    이 방법은, 의도하지 않은 클릭을 복구 할 수 있습니다. RadioButton 컨트롤을 사용하여 에 하나의 옵션이 선택되어 있는지 확인한 후 클릭하면됩니다.

    희망이 있습니다.

    참조 : Image


    편집 .. 분명히 필요 명확히하기 샘플 코드. 참고로 복사하여 붙여 넣으면 작업이되지 않습니다.

    int iSelectedButtonId = 0; 
    protected void onCreate(Bundle savedValues) { 
         ... 
         Button button = (Button)findViewById(R.id.myAwesomeButton1); // and the other buttons..etc 
         button.setOnClickListener(new View.OnClickListener() { 
         public void onClick(View v) { 
          button.setBackground(android.Orange); // or smth 
          iSelectedButtonId = button.id; 
    
        }); 
    
        Button button = (Button)findViewById(R.id.btnNext); 
        button.setOnClickListener(new View.OnClickListener() { 
         // Todo my stuff here instead 
        } 
        } 
    
    +0

    하지만 앱의 전체 디자인이 변경됩니다. 나는 특별히이 응용 프로그램을위한 버튼을 설계했습니다. – NoviceMe

    +0

    괜찮습니다. 당신의 버튼의 '클릭'에서, 행동하지 마라. (퀴즈를 끝내고, 결과를 제출하고, 다음 질문으로 간다. 선택한 답변 만 설정하면됩니다. 그런 다음 새 버튼의 onClick, action_을 수행하십시오. –

    +0

    은 더 잘 설명 할 수있는 코드를 추가했습니다. –

    관련 문제