2016-10-23 7 views
0

私はtextviewのarraylistからフェッチされた文字列を表示しようとしています。文字列を表示していません。しかし、私はテキストを設定すると、 "Some"が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を使って、ファイルを行ごとに読み込む方法は? –

関連する問題