2016-12-03 2 views
1

미친 라이브러리를 만들고 사용자 입력을 받고 입력 컨트롤을 제거하고 텍스트 결과를 TextView에 표시하고 있습니다. 또한 stringbuilder 및 문자열의 arrayLists를 사용합니다. 나는 stringbuilder와 arraylists 모두 textview 여러 가지 방법으로 모든 텍스트를 넣으려고했지만 단지 절반이 표시됩니다.Android TextView에 내 텍스트가 모두 표시되지 않음

내 컨트롤

<TextView 
     android:text="" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/word1_editText" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginLeft="26dp" 
     android:layout_marginStart="26dp" 
     android:visibility="invisible" 
     android:maxLength="1000" 
     android:maxLines="20" 
     android:scrollbars="vertical" 
     android:id="@+id/madlib1_textView" /> 

텍스트

ArrayList<String> prompts = new ArrayList<>(); 
ArrayList<String> madLibText = new ArrayList<>(); 
ArrayList<String> finalMadLib = new ArrayList<>(); 
RelativeLayout layout; 
private int promptNum; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_madlib1); 
    layout = (RelativeLayout) findViewById(R.id.activity_madlib1); 
    promptNum = 0; 
    /* OTHER INIT STUFF */ 
} 

public void submitWords(View v) { 
    finalMadLib.add(madLibText.get(promptNum)); 
    EditText word1 = (EditText) findViewById(R.id.word1_editText); 
    finalMadLib.add(word1.getText().toString()); 
    word1.setText(""); 
    word1.setHint(prompts.get(promptNum)); 
    promptNum++; 
    if (promptNum == 18) { 
     StringBuilder temp = new StringBuilder(""); 

     TextView textView = (TextView)findViewById(R.id.madlib1_textView); 
     for(int i=0;i<19;i++){ 
      // temp.append(finalMadLib.get(i).toString()); 
      textView.append(finalMadLib.get(i).toString()); 
     } 
     textView.setVisibility(VISIBLE); 
     // textView.setText(temp.toString()); 
     textView.setId(promptNum); 
     textView.setTextSize(15); 
     layout.removeView(findViewById(R.id.word1_editText)); 
     layout.removeView(findViewById(R.id.submitwords_button)); 
    } 
} 
을 아래 버튼 코드 입력 ALOW 것이다 후 19 시간 후에는 버튼을 제거하고 표시

이유는 단지 4 합계를 표시 줄과 약 10/19 또는 20/48 조각의 최종 텍스트/문자열 결과가 TextView에 표시됩니까? 나는 안드로이드 스튜디오, 윈도우 10, 내장 에뮬레이터를 사용하고 있습니다. 내 문제가 다른 유사한 질문과 다르다고 생각합니다. 허용 된 수정 사항 및 기타 사항을 성공하지 못했습니다.

+1

전체 레이아웃과 현재 진행중인 스크린 샷을 게시하십시오. 우리는 설명에서 알 수 없다. –

답변

1

그래서

android:maxLength="1000" 

이 같이 표시됩니다 제거

<TextView 
    android:text="" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/word1_editText" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginLeft="26dp" 
    android:layout_marginStart="26dp" 
    android:visibility="invisible" 
    android:maxLines="20" 
    android:scrollbars="vertical" 
    android:id="@+id/madlib1_textView" /> 

을 그리고 추가 이 활동을 onCreate하여 스크롤 할 수있게하십시오 :

TextView txtMadlib = (TextView) findViewById(R.id.madlib1_textView); 
txtMadlib.setMovementMethod(new ScrollingMovementMethod()); 
+0

고맙다. – mellis

0

당신은 전체 텍스트를 볼 수 있도록 TextViewScrollView으로 포장 할 수 있습니다

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/device_info" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     tools:text="device info" /> 

</ScrollView> 
+0

작동하지 않았다. – mellis

관련 문제