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

TextView 관련해서, 이런 기능은 어떻게 만들어야 하나요 ?

0 추천

안녕하세요 ..

TextView 관련해서 아래의 2개의 사진과 같은 부분은 어떻게 구현을 해야하는지 감이 안와서

질문을 올려보았습니다. 일반적으로 텍스트들을 쭉 나열하기가 좀 지저분한것 같아서,

4줄이나 5줄이 넘을것 같을때에, 더보기가 나오도록 하고, 더보기를 누를경우에, 싹 다 텍스트들이

마저 나오도록 구현하고 싶은데.. 아래와 같은 부분은 어떻게 구현을 해야하는건가요?

원래 string에 따로 써놓았는데.. 따로 text에 써서 한번 만든 부분을 올려보았습니다.

 

 

5.PNG

 

6.PNG

<TextView
    android:text="평창 올림픽이 개최되고 난 이후로 2016년 올 한해는 대통령의 지시를 받아 여러 지시사항
    들이 청와대의 문건으로부터 개최가 되었다. 그러나 이런 국제적인 시점에서 여러 많은 행보와
    지시들이 포함된 사법부와 검찰들이 행동함에 있어서 더욱 더 유념하고 조심해야 할 것으로 보입니다.
    또한 당국의 행정부 또한 여러 비리와 연관된 김x모 검사의 대검찰 청의 이목이 집중되고 있습니다.
    이에 더하여 KBS  MBC  JTBC 이외에 여러 언론사들이 이목을 집중하고 있습니다.
    "
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/textView3" />

 

공산당 (1,960 포인트) 님이 2016년 10월 29일 질문

1개의 답변

0 추천

최소로 화면에 보여질 글자수를 계산해서 substring으로 자르셔서 보여주셔야죠.
화면에 간단 설명이 보여지는지 bolean flag를 두고 flag에 따라서 더보기를 보여주시고
더보기를 클릭하면 전체 설명을 보여주시는 형태로 작업하시면 될 것 같습니다.

public class Movie {
     //다른 필드 생략
     private String desc; //전체 설명
     private String shortDesc;//간단 설명
     private boolean showMore;

     //getter, setter 생략

    public void toggleShowMore() {
           this.showMore = !this.showMore;
    } 

     public void setDesc(String desc) {
          this.desc = desc;
          this.shortDesc = desc.substring(1, 50); //님이 필요한 길이만큼 체크해서 자르세요.
     }
}


public class MyActivity extends Activity {
    private Movie movie;
    //boiler plate 코드 생략

    //설명부분 클릭 이벤트
    textDesc.setOnClickListener(new View.OnClickListener() {
          public void onClick(View view) {
                 movie.toggleShowMore();
                 if (movie.isShowMore()) {
                       //간단 설명 표시
                       //더보기 버튼 표시
                 } else  {
                     //전체설명 표시
                     //더보기 버튼 숨김
                 }
          }
    });
}

코드로 풀자면, 위와 같은 컨셉의 코드가 될 거 같구요. 디테일한 부분은 님이 업무와 관련있는 부분이라 구글에 검색해도 결과를 얻으시리라고 기대하지 마시고 안드로이드와 자바의 기본적인 부분을 공부해 가면서 해결하시길 바랍니다.

spark (227,830 포인트) 님이 2016년 10월 29일 답변
답변 감사드립니다... 올려주신 답변으로 거의 한 12시간 가량 해보고있는데.. 쉽게 해결이 안됩니다ㅠ 한번만 도와주실수 있으신가요 .... 끙..

올려주신 코드에서 어떻게 해야 제 TextView에 어떻게 적용을 시켜야 될지 ..
제 TextView의 코드는 아래와 같습니다..

 <TextView
                    android:id="@+id/Seventh_TextView2"
                    android:layout_below="@id/Seventh_TextView1"
                    android:layout_marginLeft="10dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    />

버튼 같은 경우에는 button1 이라고 가정해주시고 말씀하신 코드에 어떻게
적용해야 하는지 한번 찝어주시면 정말 감사드리겠습니다 ㅠ
...