2016-10-23 3 views
0

arraylist에서 가져온 문자열을 textview에 표시하려고합니다. 하지만 문자열을 표시하지 않습니다. 하지만 내가 텍스트를 설정하면 "일부"내 XML 파일에 =. 다음 값을 보여줍니다.SetText가 TextView에 텍스트를 표시하지 않습니다.

아래에는 MainActivity.java 및 activity_main.xml 파일이 첨부되어 있습니다.

MainActivity.java :

package com.example.dhara.codesprint; 

import android.content.res.AssetManager; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
import java.util.Random; 


public class MainActivity extends AppCompatActivity { 


    //private WordDictionary dictionary; 
    private static final int DEFAULT_WORD_LENGTH = 3; 
    private static final int MAX_WORD_LENGTH = 7; 
    private ArrayList<String> wordList = new ArrayList<>(); 
    private Random random =new Random(); 
    private String currentWord; 
    private ArrayList<String> words; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     EditText text7 = (EditText) findViewById(R.id.edittext); 
     Button checkAnswer = (Button) findViewById(R.id.button); 
     Button reset = (Button) findViewById(R.id.button2); 
     AssetManager assetManager = getAssets(); 
     try { 
      InputStream inputStream = assetManager.open("words.txt"); 
     } catch (IOException e) { 
      Toast toast = Toast.makeText(this, "Could not load dictionary", Toast.LENGTH_LONG); 
      toast.show(); 
     } 

     try { 
      addWord(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    public void addWord() throws IOException { 

     BufferedReader in = new BufferedReader(new FileReader("words.txt")); 
     String line; 
     while ((line = in.readLine()) != null) { 
      String word = line.trim(); 
      if (word.length() == 6) { 
       wordList.add(word); 
      } 
      int x,y,temp; 
      String str; 
      x=random.nextInt(wordList.size()); 
      str=wordList.get(x); 
      TextView textView1 = (TextView) findViewById(R.id.textView1); 
      textView1.setText("Text"); 
     } 
    } 

activity_main.xml :

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@color/background" 
    tools:context=".MainActivity"> 

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/textView2" 
     android:layout_alignRight="@+id/imageView1" 
     android:layout_alignEnd="@+id/imageView1" 
     android:id="@+id/textView1" 
     android:layout_alignLeft="@+id/imageView1" 
     android:layout_alignStart="@+id/imageView1" 
     android:textAlignment="center" 
     android:textStyle="normal|bold" 
     android:textColor="@android:color/background_light" /> 

</RelativeLayout> 
+0

캐치 블록에서 오류를'Log.w()'해야합니다. – tynn

답변

0

당신은 addWord()

try { 
    addWord(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

에서 가능한 오류를 억제하고 당신은 단지에 FileReader를 만들 파일 words.txt

BufferedReader in = new BufferedReader(new FileReader("words.txt")); 

첫 번째는 모든 파일을 찾을 수 없습니다

InputStream inputStream = assetManager.open("words.txt"); 

테스트 고려. 자산을 정확하게 addWord()에로드해야합니다.

InputStreamReader fin = new InputStreamReader(assetManager.open("words.txt")); 
BufferedReader in = new BufferedReader(fin); 
+0

그러면 readline() 함수를 어떻게 사용할 수 있습니까? –

+0

'InputStreamReader' 사용하기 – tynn

+0

예. 당신 말이 맞아요. 나는 어떤 파일도 얻지 못했다. 하지만 assestManager를 사용하면 파일을 라인 단위로 읽는 방법은 무엇입니까? –

관련 문제