2013-03-22 47 views
1

我有这段代码。我正在尝试读取数组的元素,并将其显示在android的textview中。代码显示正确的东西,如果我只是使用打印语句普通的Java而不是android sdk。我一直在试图弄清楚一段时间。任何帮助?将Android数组读入TextView

 package com.example.trivia; 

     import java.io.File; 
     import java.io.IOException; 
     import java.util.Random; 
     import java.util.Scanner; 

     import android.app.Activity; 
     import android.os.Bundle; 
     import android.os.CountDownTimer; 
     import android.widget.Button; 
     import android.widget.TextView; 



public class PlayActivity extends Activity { 
    String [][]array; 
    String [][] questionsArray; 
    int []playindexArray = new int[50]; 
    TextView timer, questions; 
    Button answerA, answerB, answerC, answerD; 
    String show = "Buttons and Question"; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_play); 
    timer = (TextView) findViewById(R.id.timer); 
    questions = (TextView) findViewById(R.id.questions); 
    answerA = (Button) findViewById(R.id.buttonA); 
    answerB = (Button) findViewById(R.id.buttonB); 
    answerC = (Button) findViewById(R.id.buttonC); 
    answerD = (Button) findViewById(R.id.buttonD); 



//countdowntimer 
    CountDownTimer count = new CountDownTimer(32000, 1000) { 
     public void onTick(long millisUntilFinished) { 
      timer.setText("TIME REMAINING: " + millisUntilFinished/1000); 

     } 
     public void onFinish() { 
      timer.setText("TIME UP!"); 
     } 
     }; 
     count.start(); 
       try { 
     readCSV(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 


    public void readCSV() throws IOException{ 
     array = new String[117][6]; 
     String delimiter = ","; 
     int row =0; 
     File file = new File("questions1.csv"); 
     Scanner sc = new Scanner(file);  

     while (sc.hasNextLine()) 
     { 
      String line = sc.nextLine(); 
      String [] temp = line.split(delimiter); 
      for(int i = 0; i< temp.length; i++){ 
       array[row][i] = temp[i]; 
      } 
      row++; 
     } 
     questionsArray = new String[117][6]; 
     questionsArray = array; 
     questions.setText(questionsArray[0][2]); 
     } 
+1

代码中没有TextView。告诉我们你已经尝试过了。 – 323go 2013-03-22 05:28:37

+0

你在找什么?如何创建textview?或如何在TextView中显示?如果后面的一个是你想要的,那么你希望如何在textview中显示?多行? – stinepike 2013-03-22 05:31:06

+0

@pzyren也是,你的打印语句在哪里?显示完整和相关的代码。 – avinesh 2013-03-22 05:31:35

回答

2

代码中没有TextView。也不是setText方法。最简单的TextView这样工作

TextView textView = (TextView) findViewById(R.id.id_of_your_textview); 
text.setText("your text"); 

显示您先试过的相关代码。然后显示您收到的错误。这会加快你获得你想要的东西的过程。

+0

在那里显然有两个textViews计时器和问题引用类声明。并且还有OnCreate方法中的初始化。 – pzyren 2013-03-22 06:06:01

+0

是的,我可以看到你已经更新了代码。现在我的问题是关于readCSV方法。你从哪里打电话?如果此方法应该获取您尝试显示的字符串,则应该从某处调用它。像这样questions.setText(readCSV(q));你在哪里调用方法,方法的返回类型是以字符串的形式。像这样的东西。现在我没有看到你从这个代码的任何地方调用这个方法。 – 2013-03-22 06:11:17

+0

感谢您花时间回复。我在onCreate结束时调用它。代码本身实际上工作,因为如果我运行它没有SDK它打印我需要的东西。但是当我在onCreate中调用它时,它不会显示在textView中。我不确定如果我不应该在onCreate中调用它。 – pzyren 2013-03-22 06:21:50