【问题标题】:Android Reading array into TextViewAndroid将数组读入TextView
【发布时间】:2013-03-22 05:26:10
【问题描述】:

我有这段代码。我正在尝试读取数组的元素并将其显示在 android 的 textview 中。如果我只使用 print 语句纯 java 而不是 android sdk,则代码显示正确的内容。我一直在试图弄清楚一段时间。有什么帮助吗?

     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]);
        }

【问题讨论】:

  • 您的代码中没有 TextView。向我们展示您在这方面的尝试。
  • 您在寻找什么?如何创建文本视图?或者如何在文本视图中显示?如果后一个是您想要的,那么您想如何在 textview 中显示?在多行?
  • @pzyren 还有,你的打印语句在哪里?,显示完整和相关的代码。
  • 请发布您的完整代码...
  • @StinePike textview 被称为问题。运行时没有出现在文本视图中。

标签: android arrays textview


【解决方案1】:

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

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

显示您首先尝试过的相关代码。然后显示你得到的错误。这将加快您获得所需内容的过程。

【讨论】:

  • 定时器中有两个textView,问题参考类声明。还有 OnCreate 方法里面的初始化。
  • 是的,我可以看到您已经更新了代码。现在我的问题是关于 readCSV 方法。你从哪里称呼它?如果此方法应该获取您尝试显示的字符串,那么应该从某个地方调用它。像这样的问题.setText(readCSV(q));在哪里调用方法,方法的返回类型是字符串的形式。像这样的东西。现在我没有看到你在这段代码的任何地方调用这个方法。
  • 感谢您抽出宝贵时间回复。我在 onCreate 结束时调用了它。代码本身实际上是有效的,因为如果我在没有 SDK 的情况下运行它,它会打印出我需要的东西。但是当我在 onCreate 中调用它时,它不会出现在 textView 中。我不确定我是否不应该在 onCreate 中调用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-22
  • 2012-09-19
  • 1970-01-01
  • 2021-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多